将网站编码从ISO-8859-1切换到UTF-8

时间:2009-11-22 22:17:58

标签: php encoding utf-8 iso-8859-1

我正在尝试将现有的PHP网页转换为使用UTF-8编码。

为此,我做了以下事情:

  1. 将UTF-8指定为我网页开头的元内容标记中的字符集。
  2. 在php.ini中将default_charset更改为UTF-8。
  3. 指定UTF-8作为php.ini文件中的iconv编码。
  4. 使用以下命令在我的.htaccess文件中指定UTF-8:AddDefaultCharset UTF-8。
  5. 然而,毕竟,当我回显mb_internal_encoding()时,它显示为ISO-8859-1。我在这里错过了什么?我知道我可以使用auto_prepend附加一个脚本,将默认编码更改为UTF-8,但我只是想了解我所缺少的内容。

    由于

2 个答案:

答案 0 :(得分:4)

mb_internal_encoding()不会影响脚本本身的输出,在使用multibyte string functions以及POST和GET输入的转换时会影响默认编码。< / p>

只需使用

进行设置即可
mbstring.internal_encoding='UTF-8'

php.ini 文件中,或以编程方式使用:

mb_internal_encoding('UTF-8');

说到mb_函数,您需要重写脚本才能使用这些函数,例如: mb_strlen()代替strlen.()等。

还要检查输出的HTTP内容类型标题,但是从你做过的事情来看它应该没问题。

如果您使用数据库,您还必须转换它,并指定您在连接时使用UTF-8。

答案 1 :(得分:0)

文档说明您可以使用

设置该变量
/* Set internal character encoding to UTF-8 */
mb_internal_encoding("UTF-8");

应该摆脱你的问题:)