【发布时间】:2013-04-03 01:48:41
【问题描述】:
我发现字符 ‘ 没有被正确转义并且正在生成字符 �,
//ajax the next page
var sendRequest = function(href, direct){
pushState(href);
jQuery.ajax({
url: href,
dataType: "html",
cache: false,
contentType: "text/html; charset=utf-8",
success: function(data) {
pushNewData(data, direct);
}
});
}
例如,元素port_quote 中的文本‘electric brain‘ 不正确。
<div id="port_quote">
<p>"Toi is the Maori word for art and the literal translation of rorohiko, the Maori word for computer, is �electric brain�. Rorohiko is morphed into Rerehiko and Toi Rerehiko is a moving image art form immersed in Maori tradition, tikanga (custom) and values which uses digital and electronic media."</p>
</div>
request 标头如下...
Accept text/html, */*; q=0.01
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Content-Type text/html; charset=utf-8
如何解决某些字符未正确转义的问题?我考虑过可能循环遍历 data 变量,然后将每个 ‘ 替换为其 ascii 等效项(但我更喜欢更通用的方法)。
【问题讨论】:
-
那个字符是 U+2018,左单引号。你需要
charset=utf-8吗? -
是的,代码很旧,刚刚编辑了问题,我正在用
iso-8859-1对其进行测试,看看是否会出现相同的结果(它确实发生了:()。 -
ISO-8859-1会出现同样的结果不能。 jQuerycontentType是 request's 内容类型,这里重要的是服务器的 - 您没有显示。无论如何,服务器正在发送最有可能以 Windows-1252 编码的数据,绝对不是 UTF-8。响应头是什么?