Chrome Ajax 响应中的 UTF-8 编码出错

mty*_*son 5 safari ajax encoding webkit google-chrome

我看到了这个问题。在 Chrome/Safari 中,设置为包含一些特殊字符(即西班牙波浪号“i”)的内容的 Ajax 响应无法正确解释。

这个问题用这里的例子完美总结:

我尝试了 Firefox 和 IE,两者都运行良好。只有 Chrome 没有正确显示网页。这是 URL:http : //maixner.eu/#bio 如您所见,有些字符是错误的。这行:2012 - Muzeum modernÃho umÄ›nÃ,Olomouc,捷克 应该是:2012 - Muzeum moderního um?ní,Olomouc,捷克

开发细节:1) 有 index.html 页面和 javascript 文件,它通过 AJAX 加载数据(调用 PHP 文件) 2) index.html 文件的内容类型设置为 UTF-8 3) 所有文件都是 UTF-8 编码 4 ) javascript 使用 XMLHttpRequest 类和 responseText 注入 innerHTML 5) php 文件具有 header('Content-type: text/html;charset=UTF-8"');

和这里:

有类似(或相同)的问题,但有西班牙语字符。我已将 Apache 设置为使用 UTF-8 我已设置 php header('Content-Type: text/html; charset=utf-8'); 我已经设置了 html 我已经设置了 html 但是 Chorme(只有 Chrome、FF、IE 等可以正常工作)显示:

[帖子标题] ... Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 ... [来自表单的一些随机帖子值] ------WebKitFormBoundary0wi0NAscQiUkF2hJ 内容-处置:表格数据;name="s_name" OxÃgeno 100.4 FM Bogotá <-- 字符错误!应阅读:Oxígeno 100.4 FM 波哥大

原帖

小智 3

我有同样的问题。

基本上,就我而言,这是因为浏览器发送的请求标头。

chrome 发送:Content-Type:application/x-www-form-urlencoded,.
firefox发送:Content-Type:application/x-www-form-urlencoded; 字符集=UTF-8

如果没有 charset=UTF-8,服务器默认为 ISO,并且解码错误。

  • 你在哪里/如何强制`charset=UTF-8`? (6认同)