PHP字符编码错误:他们是如何做到的?

时间:2014-06-16 07:32:20

标签: php encoding utf-8

问题:

我有一个Textarea,除了XML作为内容和发布到服务器。如果所有的Ascii字符都存在,它可以正常工作,但是当我们将数据放入希伯来语时,simplexml_load_string无法加载数据,提示无效的XML作为数据编码会破坏已发布的数据。

我做了什么:

  1. 我设置了UTF-8的HTML元标记,我确实为内容header设置了UTF-8
  2. 我将MySQL设置为'SET NAMES utf8
  3. print_r(iconv_get_encoding('all'));时,它会将所有三个值打印为ISO-8859-1
  4. 当我打印$_POST时,它会在浏览器上显示希伯来字符[在浏览器视图源上也是如此],但功能仍然失败。

  5. 当我更改php.ini以将iconv编码作为UTF-8时,一切正常。

  6. 然而: 同一台服务器有100个Wordpress安装运行希伯来语网站,他们没有这样的问题。

    所以,我的问题是:为什么我的代码失败但是wordpress或任何其他开源软件在编码时运行良好。我确实尝试将iconv设置为utf-8作为第一个可执行行,但对我来说没有任何改变。

    我不确定我的问题解释得很好,我的问题很清楚,如果不是,请告诉我。感谢。

    编辑:我确实尝试了utf8_encodeutf8_decode功能,但他们也失败了。

1 个答案:

答案 0 :(得分:0)

您需要使用mb_internal_encoding('UTF-8')告诉php您正在使用的编码。有了这个,你将覆盖php.ini中的设置。