我有一个属性文件,它使用ISO Latin编码,但使用特殊字符作为UTF-8转义序列,例如以下字符串:
Einstellungen l\u00f6schen
我尝试了iconv
,punycode
和JSON.parse
的一系列不同组合,但它们都不能满足我的要求,即将这些字符串转换为正确的UTF8格式适用于JavaScript。无论我如何处理它,当我打印它们时,字符串总是有它们的UTF8转义序列。
请注意,如果存在任何差异,该文件是一个较长的文件,其中包含一些换行符等。
如何以打印正确字符的方式阅读此文件?
答案 0 :(得分:2)
您必须将其解析为字符串文字,因此unicode代码由引擎解析,因此您必须在通过JSON.parse()运行它之前将其包装在引号中。
JSON.parse('"' + str + '"');
//if you use " in your string, you would have to escape it
JSON.parse('"' + str.split('"').join('\\"') + '"');
或者您搜索unicode代码并将其替换为您自己的
str.replace(/\\u([0-9a-fA-F]{4})/g, (m,cc)=>String.fromCharCode("0x"+cc));