PHP显示中国文字:SET NAMES“utf-8”不工作(PHP displaying Chine

2019-06-25 08:26发布

我想与我有一个数据库的工作,但我不能把它显示中国文字。 该数据库实际上是一个MS Access文件首先,我转换成MySQL的一个程序。 总之,许多行在他们中国字,我不能让他们在任何浏览器中正确显示。

我可以就好了,否则显示中国文字,我也能看到他们,如果我用phpmyadmin看表。 我搜索周围的解决了这个问题,它似乎对我来说,通常的处理办法是做“集名称‘UTF8’”查询,但这次只改从问号显示的字符以外,怪异,符号。

如果我期待在phpMyAdmin排序规则是utf8_general_ci数据库和所有表。

有任何想法吗?

Answer 1:

对于MySQL数据库,这解决了这个问题:

$dbh = mysql_connect($hostname, $username, $password);    
mysql_select_db($db, $dbh);    
mysql_set_charset('utf8', $dbh);

PDO的解决方案:

$dbh = new PDO('mysql:host=$hostname;dbname=$db;charset=UTF-8', $username, $password);


Answer 2:

你必须确保的几件事情:

  • 进口前,字符集,你要使用的表必须设置为UTF-8。 你还必须确保导入的数据实际上包含正确的UTF-8编码的字符。
  • 在进口的时候,你必须指定字符集建立的会话(例如,通过运行SET NAMES utf8;
  • 导入后,你应该写一个小脚本读取,你知道有它的特殊字符的行; 脚本必须:
    • 利用header('Content-Type: text/plain; charset=utf-8'); 或任何MIME类型你想设置
    • 设置了建立MySQL连接正确的字符集(UTF8)

如果一切顺利的话,它应该正确显示数据。



文章来源: PHP displaying Chinese characters: SET NAMES 'utf8' not working
标签: php utf-8 cjk