特殊字符和多语言

时间:2010-08-19 06:23:39

标签: php javascript mysql encoding character

我之前请问过这个问题,希望这次得到答复

我创建了一个使用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");

我的问题是

  1. 墙不支持多种语言(显示为????并导致我的xml不能正常工作)

  2. 我仍然遇到一些特殊字符的问题(显示为â 或?)

  3. 我做得不对?请协助

3 个答案:

答案 0 :(得分:1)

  1. 尽量不要utf8_decode
  2. 尝试使用: <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和文档编码,就像魅力一样。