问题:
我有一个Textarea,除了XML作为内容和post到服务器。如果所有Ascii字符都在那里,它可以正常工作,但是当我们将数据放在希伯来语中时,simplexml_load_string
无法加载数据,提示无效的XML,因为数据编码破坏了已发布的数据。
我做了什么:
- 我设置了UTF-8的HTML元标签我设置了php
header
内容设置为UTF-8
- 我有MySQL设置为
'SET NAMES utf8
。 - 当
print_r(iconv_get_encoding('all'));
时,将所有三个值打印为ISO-8859-1
。 -
当我打印
$_POST
时,它在浏览器上显示希伯来字符很好[在浏览器视图源上],但功能仍然失败。 -
当我更改php.ini将iconv编码为UTF-8时,所有工作正常。
:同样的服务器有100个Wordpress安装运行希伯来网站,他们没有这样的问题。
所以,我的问题是:为什么我的代码失败,但wordpress或任何其他开源软件的编码工作得很好。我确实尝试将iconv设置为utf-8作为第一个可执行行,但对我来说没有任何改变。
我不确定我的问题是否解释得很好,我的问题是否清楚,如果不是,请让我知道。谢谢。编辑:我确实尝试了utf8_encode
和utf8_decode
函数,但它们也失败了。
您需要使用mb_internal_encoding('UTF-8')
来告诉php您正在使用的编码。这样你就覆盖了php.ini中的设置。