JavaScript blob 编码为 UTF-8 而不是 ANSI

2024-05-04

我使用 JavaScript blob 创建一个 FDF 文件,该文件打开并填充本地存储的 PDF。

但是,本地存储的 PDF 的文件路径包含重音字符(并且我无法编辑文件夹名称)。

当文件夹路径不包含重音符号时,此代码有效,并且如果我在记事本中打开 fdf,默认编码为 ANSI。但是,当文件夹路径包含重音符号时,FDF 打开时会显示一条消息,指出找不到 PDF。此外,记事本中的默认编码已更改为UTF-8。

FDF_Text = ''
    + '%FDF-1.2' + "\n"
    + '1 0 obj<</FDF<</F(T:/Échange/MY_PDF.pdf)/Fields 2 0 R>>>>' + "\n"
    + 'endobj' + "\n"
    + '2 0 obj[' + "\n" 
    + '<</T(FIELD_NAME)/V(SOME_TEXT)>>' + "\n"
    + ']' + "\n" 
    + 'endobj' + "\n"
    + 'trailer' + "\n"
    + '<</Root 1 0 R>>' + "\n"
    + '%%EO'


var blobObject = new Blob([FDF_Text], {type: 'text/css;charset=ANSI'}); 
window.navigator.msSaveOrOpenBlob(blobObject, 'MY_FDF.fdf');

我努力了

  • 将 É 替换为 E
  • 使用 String.fromCharCode(201) (É 的 chr 值)
  • 将斑点本身的“类型”更改和删除为我发现的几个不同的示例(抱歉,我没有跟踪所有不同的组合)。

谁能提出不同的解决方案?


您可以将数据表示为二进制,只需运行字符串并填充二进制数组

    FDF_Text = ''
        + '%FDF-1.2' + "\n"
        + '1 0 obj<</FDF<</F(T:/Échange/MY_PDF.pdf)/Fields 2 0 R>>>>' + "\n"
        + 'endobj' + "\n"
        + '2 0 obj[' + "\n" 
        + '<</T(FIELD_NAME)/V(SOME_TEXT)>>' + "\n"
        + ']' + "\n" 
        + 'endobj' + "\n"
        + 'trailer' + "\n"
        + '<</Root 1 0 R>>' + "\n"
        + '%%EO'
    
    var uint8 = new Uint8Array(FDF_Text.length);
    for (var i = 0; i <  uint8.length; i++){
        uint8[i] = FDF_Text.charCodeAt(i);
    }
    var blobObject = new Blob([uint8], {type: 'text/fdf'}); 
    window.navigator.msSaveOrOpenBlob(blobObject, 'MY_FDF.fdf');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript blob 编码为 UTF-8 而不是 ANSI 的相关文章

随机推荐

  • 使用 R 从 Microsoft Outlook 发送电子邮件时的 Html 表输出格式

    我正在尝试使用以下方法将数据框转换为 html 表htmlTable打包 然后使用 Microsoft Outlook 作为电子邮件客户端发送电子邮件RDCOMClient通过附加 html 表作为电子邮件正文来进行打包 我是 HTML 编
  • 为什么android SQLite可以将双精度值(java 8字节)存储到float列中

    Create Table db execSQL CREATE TABLE PERSONS TABLE PersonsColumns ID INTEGER PRIMARY KEY AUTOINCREMENT PersonsColumns HE
  • 由于辅助功能设置而未检测到 iOS 手势

    我正在开发的应用程序需要三点滑动手势 我已经成功地实现了这个使用UIGestureRecognizer大多数情况下它工作得很好 但是 如果您打开设备的 缩放 辅助功能设置 设置 gt 常规 gt 辅助功能 gt 缩放 则会停止识别该手势 缩
  • 具有重复名称的 WSDL — 如何强制 Java 类名称

    背景 我们正在开发一个与多个第三方网络服务通信的应用程序 遗憾的是 其中一个使用糟糕的命名约定定义了 WSDL 文件 响应元素及其使用的复杂类型经常重复使用相同的名称 下面的代码片段显示了这样一个例子
  • 在注释处理器中获取字段类

    我正在编写我的第一个注释处理器 并且遇到了一些看似微不足道的问题 但我找不到有关它的任何信息 我有一个用我的注释注释的元素 MyAnnotation String property 当我将此属性作为处理器中的元素获取时 我似乎无法以任何方式
  • 使用 React 更新关于 props 变化的 C3 图表

    我试图在数据更改时美化作为 React 组件编写的 C3 图表的更新 数据通过父组件的 props 流向组件 我现在拥有的解决方案 有效 但似乎并不是最优的 当新数据进入时 整个图表都会重新生成 我想过渡到新状态 线条移动而不是整个图表眨眼
  • 如何在 UIStackView 中垂直和水平居中

    I have a simple UIImageView with 50x50 size If I had a UIView of size 100x100 and I wanted to center the image inside of
  • 如何以编程方式滚动面板

    我有一个System Windows Forms Panel有一些内容 我正在尝试以编程方式向上或向下滚动面板 垂直 我尝试过设置AutoScrollPosition属性为新的Point在面板上 但这似乎并没有做到这一点 我有AutoScr
  • UIView的setNeedsLayout、layoutIfNeeded和layoutSubviews之间有什么关系?

    谁能对两者之间的关系给出明确的解释UIView s setNeedsLayout layoutIfNeeded and layoutSubviews方法 以及一个使用所有三个的示例实现 谢谢 让我感到困惑的是 如果我将自定义视图发送给set
  • 带填充零的十六进制格式

    将整数类型格式化为十六进制字符串时 我无法让它用零填充数字 println 4x 0x0001 as u16 gt 0x1 but expected 0x0001 println 02x 0x0001 as u16 gt 0x1 same
  • Angular js中两个$scope数组的区别

    有没有办法返回 angularjs 范围内存在的两个数组之间的差异 例如 scope user1 a b scope user2 a b c d 这两者的区别应该给我另一个 scope user3 c d Underscore js对此有不
  • 使用主题函数在 body 标记后插入代码

    我试图在开头添加一段代码everyDrupal 站点中的页面 因为我有不止一个page模板 我想以编程方式执行此操作 但没有成功 我还是个新手 虽然我了解了钩子 主题函数等的要点 但我只是想不出实现这一目标的正确方法 到目前为止我已经覆盖了
  • R data.frame 从另一个变量选择的变量中获取值,向量化

    我收到的数据包含许多类似的变量 还有一个附加变量指示哪些变量one我真正想要的那些类似的变量 使用循环我可以查找正确的值 但是数据很大 循环很慢 而且看起来这应该是可矢量化的 我只是还没弄清楚怎么做 编辑 所选变量将用作同一数据框中的新变量
  • SwiftUI - 正确使用 @available() 和 #available

    我在下面的代码中遗漏了什么吗 此应用程序在 iOS 15 设备上构建 macOS Monterey b5 Xcode 13 b5 并完美执行 但在 iOS 14 7 设备上导致 SIGABRT import SwiftUI struct C
  • 在 RecyclerView 中回收视图后,长按会损坏 EditText(或 android.support.v7.widget.AppCompatEditText)

    Bug总结 After EditText正在被回收RecyclerView 其用于选择所有文本并显示上下文菜单 剪切 复制 粘贴 的长按行为不再按预期工作 从 Android 15 到 Android 28 都会出现此问题 我都尝试过Edi
  • 角度抛出错误 $parse:ueoe 表达式意外结束

    我网站的这一部分有错误 我无法弄清楚 因为我几个月没有更改它 错误是 Error parse ueoe http errors angularjs org 1 4 3 parse ueoe p0 event id 3FEventContro
  • 如何使用 JGit API 从父提交获取树?

    对于给定的提交 我想获取父提交树 以便我可以继续比较更改 我发现父 RevCommit 对象上的 getTree 始终返回 null ObjectId lastCommitId repository resolve Constants HE
  • 查找二维空间中圆内的所有点

    我表示我的 2D 空间 考虑一个窗口 其中每个像素显示为 2D 数组中的一个单元格 即 100x100 的窗口由相同维度的数组表示 现在给定窗口中的一个点 如果我画一个半径的圆r 我想找到该圆圈中的所有点 我想我应该检查半径周围方形区域中的
  • request.getScheme() 返回 http 而不是在 java 中返回 https

    function demo request response request getScheme is returning http instead of returning https System out println request
  • JavaScript blob 编码为 UTF-8 而不是 ANSI

    我使用 JavaScript blob 创建一个 FDF 文件 该文件打开并填充本地存储的 PDF 但是 本地存储的 PDF 的文件路径包含重音字符 并且我无法编辑文件夹名称 当文件夹路径不包含重音符号时 此代码有效 并且如果我在记事本中打