5

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

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

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

开发细节:1) 有 javascript 文件的 index.html 页面,它通过 AJAX(调用 PHP 文件)加载数据 2) index.html 文件的内容类型设置为 UTF-8 3) 所有文件都是 UTF-8 编码 4 ) javascript 使用带有 responseText 的 XMLHttpRequest 类注入 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 波哥大

原帖

4

2 回答 2

3

我有同样的问题。

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

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

如果没有 charset=UTF-8,则服务器默认为 ISO,并错误地对其进行解码。

于 2012-05-16T03:32:16.880 回答
-1

在 php 标头函数中,您在字符串关闭之前有一个额外的 "。它应该是

<?php
header('Content-type: text/html; charset=utf-8');
于 2012-05-11T17:53:22.947 回答