我之前请问过这个问题,希望这次得到答复
我创建了一个使用ajax提交的简单注释墙。
使用javascript我收集用户输入:
var sharetxt = encodeURIComponent(document.getElementById("cw_share_txt").value);
然后将其传递到php页面,在php页面上,我收集传递的数据:
$text=nl2br(htmlentities(trim(utf8_decode($_POST["txt"]))));
上面的php页面编码:
header("Content-Type: text/xml; charset=utf-8");
我的问题是
墙不支持多种语言(显示为????并导致我的xml不能正常工作)
我仍然遇到一些特殊字符的问题(显示为â 或?)
我做得不对?请协助
答案 0 :(得分:1)
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
在页面标题中正确显示字符答案 1 :(得分:0)
这看起来像是错误编码的经典案例。
我认为您不需要拨打utf8_decode()
。由于源页面已经声明为UTF-8,因此发布的数据为UTF-8,您应该a)保留UTF-8和b)确保将目标页面声明为UTF-8。
(另外,尝试在其他浏览器中使用.IE有很好的猜测字符集的声誉,但是(例如)我知道Opera会防御并提交HTML实体,如果它与字符集不匹配。这可能会帮助你真正错误的想法!)
答案 2 :(得分:0)
此外,尝试更改文档的编码。我遇到了和你一样的问题,我更改了meta charset
和文档编码,就像魅力一样。