我将一对中文字符发布到我的服务器上:
然后,Web服务器将它们翻译成拼音:忠孝
大中小
我知道这是有效的,因为我通过直接点击我的AJAX处理程序得到了它。因此,服务器正确编码所有内容。但是,当我通过jQuery收到响应时,我得到:
深航&安培;#333;&ngxi放大器;#224;○
我的代码:
$.ajax({
type: "POST", url: 'procChineseTrans', data: 'toTrans='+text,contentType: "application/x-www-form-urlencoded; charset=UTF-8",
complete: function(data){
//alert(data.responseText);
$('#street_address').val(data.responseText);
}});
我也设置了:
header('Content-Type:text/html; charset=UTF-8');
和
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
有没有理由我的回复是纯ASCII格式?
编辑:
检查我的响应标题,它表示它是UTF-8。但是,它仍然显示ASCII
答案 0 :(得分:1)
啊哈......我明白你的问题是什么。您发回的text/html
标头导致jquery将responseText
解析为HTML。如果您未指定dataType
选项,则jquery会根据响应标头最佳地猜测您正在播放的数据类型。
尝试将dataType : text
添加到$.ajax
来电中的选项中。如果可行,请考虑调整响应Content-type
标题。
要进一步阅读,请在jquery手册页中搜索“dataType”:http://api.jquery.com/jQuery.ajax/
答案 1 :(得分:1)
强制它进入html()格式化它。