日文文本输出为问号或goobledy gook

时间:2013-03-26 06:46:55

标签: php mysql utf-8

我已经做了一段时间了,我尝试了很多提供的解决方案 - 无济于事。

在phpadmin中,变量为utf8_unicode_ci

使用以下标题的简单查询:

<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<meta http-equiv="Content-Language" content="ja" />

输出问号:

Gibberish text

如果我添加第mysql_query("SET NAMES utf8");行 就在查询之前我得到goobledy gook(mojibake):

enter image description here

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您应该将MySQL 连接编码设置为您在页面上使用的相同编码。服务器将找到的结果转换为此编码,这样您就不必关心数据的实际存储方式。

由于设置连接UTF-8会产生mojibake,因此您的页面必须具有一些不同的编码。可能是SJIS?在这里,您将找到MySQL支持的CJK编码:http://dev.mysql.com/doc/refman/5.5/en/charset-asian-sets.html

设置结尾的首选方法是使用mysql_set_charset。执行SET NAMES适用于基于ASCII的编码,如UTF-8,但不适用于其他编码,如sjis。例如:

mysql_set_charset('cp932');

另外,请勿在新程序中使用mysql库。它已被弃用,并将在某些时候从PHP中删除。