首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Express发送Windows-1255编码文件?

如何使用Express发送Windows-1255编码文件?
EN

Stack Overflow用户
提问于 2018-10-10 16:27:53
回答 1查看 318关注 0票数 0

我正在编写一个创建文本文件的API。它由遗留软件使用,这些软件要求文件采用Windows 1255编码。我正在从一个很好的旧JavaScript字符串创建文件内容。

这是我到目前为止拥有的代码的相关部分:

代码语言:javascript
复制
var iconv = require('iconv-lite');
const str = 'Hello world, שלום עולם';
const encoded_str = iconv.encode(str, 'win1255', {addBOM: true});
response.status(200).send('data:text/plain;base64,' + Buffer.from(str, 'binary').toString('base64'));

它成功发送了一个文本文件。它的ASCII内容被保留下来,当我在记事本中打开它时,它显示得很好,但任何非ASCII(想想:希伯来语)字符都是乱码。

我有一种直觉,它与base64转换有关。(该文件稍后将使用超文本标记语言<a href="...">标记打开)

EN

回答 1

Stack Overflow用户

发布于 2018-10-10 16:58:22

您的代码是正确的。

您看到乱码字符的原因更多地与您的Windows设置有关。

Windows-1255是一个旧标准。现在我们使用UTF (Unicode)。与其他Windows代码页一样,Windows-1255也是8位SBCS。

前127个值与ASCII兼容。另一种则基于编码而采用不同的含义。希伯来语编码给了他们希伯来语的含义,日语给了他们日语的含义,等等。没有足够的比特来表示各种各样的符号。

如果您转到Windows设置并定义如何处理非unicode编码,它将更改前127个数字的含义。去把它设置为希伯来语,你的内容就不会再乱码了。

进一步阅读:Joel on Software - The absolute minimum every software developer absolutely positively must know about unicode and character sets, no excuses.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52735820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档