【发布时间】:2017-10-27 14:15:22
【问题描述】:
所以我正在通过标准节点http.get 读取远程服务器上的 JSON 文件。这个 JSON 包含这样的字符串:NÖM Portionsbutter PG=20g 100er,但在我的服务器上,同样的字符串看起来像这样:N�M Portionsbutter PG=20g 100er。
我认为问题在于 http 请求的标头 (content-type: text/plain;charset=UTF-8) 与 JSON 文件的实际编码 (ISO-8859-1) 之间的差异。
我尝试了几个版本来解决这个问题,比如使用 iconv-lite's iconv.decode(data, 'latin1'),但是这些特殊字符(德语中的“元音变音”)再次显示错误。
有趣的事实:通过浏览器下载文件,通过file -I file.json 检查并获取text/plain; charset=iso-8859-1,然后使用iconv.decode(data, 'latin1') 工作得非常好,而且元音符号是正确的。
我在这里没有想法......正确解析这样的 JSON 文件的完美方法是什么?
【问题讨论】:
标签: json node.js http encoding