【问题标题】:Character encoding differs between local and remote server本地和远程服务器之间的字符编码不同
【发布时间】:2023-03-16 08:18:01
【问题描述】:

我遇到了字符编码问题。我正在使用 D3.js 加载一个 json 文件。某些行包含诸如 å、ä 和 ö 之类的字符。这些在浏览器中呈现为 �,但仅在上传到我的虚拟主机时才。在本地服务器上,一切正常。

我已经尝试了所有可以想到的文件编码,但没有任何帮助。有任何想法吗?谢谢!

【问题讨论】:

  • 您的文件是否在 Content-Type 标头中使用正确的字符集提供服务?
  • 抱歉,我错过了您的评论。问题解决如下。

标签: javascript json utf-8 character-encoding


【解决方案1】:

首先,排除上传过程中损坏的文件。确保服务器上的 json 文件与您上传的文件相同。往返测试是一个很好的工具。 (从服务器 FTP 文件返回并检查它是否与您开始使用的相同。如果您在 Windows 机器上使用简单的 FTP 客户端(或者如果您的服务器是 Windows),请确保使用二进制传输模式。)

其次,检查来自服务器的文件的标题。 Content-type 标头应指定 application/json 作为媒体类型。根据RFC 4627,JSON 文件必须以某种 Unicode 编码进行编码。默认值为 UTF-8,但也可以是 UTF-16(LE、BE 或带有字节顺序标记)。确保如果标头指定了正确的编码。 (特别是,它应该与您用于生成文件的编码相匹配。)

如果一切都失败了,请在 JSON 文本中使用 Unicode 转义序列(例如,\u00e1 代表 á)对问题字符进行编码。

【讨论】:

  • 感谢您的出色回答,我相信这会帮助许多其他人。就我而言,在 FileZilla 中将传输模式更改为二进制解决了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-21
  • 1970-01-01
  • 2020-08-27
  • 2014-12-08
相关资源
最近更新 更多