如何在PHP中正确显示中文字符?

时间:2012-11-21 15:15:48

标签: php

我有这些汉字:

汉字/漢字''test

如果我这样做

echo utf8_encode($chinesevar);

显示

??/??''test

即使我只是做一个简单的

echo $chinesevar

它仍会显示一些奇怪的字符......

那么如何在不使用< meta>的情况下显示这些汉字。标签与UTF-8 thingy ..或ini_set UTF-8的东西,甚至是UTF-8的header()东西?

5 个答案:

答案 0 :(得分:14)

简单:

  1. 以UTF-8
  2. 保存您的源代码
  3. 输出一个HTTP标头,指定浏览器使用UTF-8解释页面:

    header('Content-Type: text/html; charset=utf-8');
    
  4. 完成。

    utf8_encode用于将Latin-1编码的字符串转换为UTF-8。你不需要它。

    有关详细信息,请参阅Handling Unicode Front To Back In A Web App

答案 1 :(得分:1)

看看您的文件是UTF8而没有BOM,并且您的网络服务器以UTF-8提供您的网站

<强> HTML:

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
PHP中的

header('Content-Type: text/html; charset=utf-8');

如果您使用数据库查看,如果您从数据库中读取文本,则表明您的数据库是UTF-8。

答案 2 :(得分:1)

$ chinesevarOK = mb_convert_encoding($ chinesevar,'HTML-ENTITIES','UTF-8');

答案 3 :(得分:0)

或许看一下以下解决方案:

  1. 您的数据库字段 COLLATE应为utf8_unicode_ci
  2. 检查您的记录是否在数据库中显示正确的字符......
  3. 将您的html设置为utf8

  4. 连接数据库后,将以下行添加到您的php

    mysqli_set_charset($ CON,&#34; UTF8&#34);

  5. http://www.w3schools.com/php/func_mysqli_set_charset.asp

答案 4 :(得分:0)

将源代码保存为UTF-8 No BOM