我的 Java Web 应用程序提交一个返回 JSON 的 AJAX 请求,如下所示:
{'value': 'aériennes'}
当'aériennes'在网页中显示时,它显示为'a�riennes',所以我猜测存在某种字符编码问题。 AJAX 响应标头包括
Content-Type application/json
其中似乎不包含任何字符集信息。我想这需要改变成类似的东西
Content-Type text/html; charset=iso-8859-1 (or charset=utf8)
应用程序的服务器端是Spring MVC,我想一定有办法为每个响应设置默认字符集?
症状表明,原来采用 UTF-8 编码的 JSON 字符串使用 ISO-8859-1 编码写入 HTTP 响应,并且指示 Web 浏览器将其显示为 UTF-8。如果它是使用 UTF-8 编写并显示为 ISO-8859-1,那么您会看到aériennes
。如果写成and使用 ISO-8859-1 显示,那么您会看到a�riennes
.
要解决 JSON 字符串错误地写入 ISO-8859-1 的问题,您需要将 webapp / Spring 配置为使用 UTF-8 作为 HTTP 响应编码。基本上,它应该在幕后执行以下操作:
response.setCharacterEncoding("UTF-8");
不要更改您的内容类型标头。对于 JSON 来说完全没问题,并且显示为 UTF-8。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)