我已经做了一段时间了,我尝试了很多提供的解决方案 - 无济于事。
在phpadmin中,变量为utf8_unicode_ci
。
使用以下标题的简单查询:
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<meta http-equiv="Content-Language" content="ja" />
输出问号:
如果我添加第mysql_query("SET NAMES utf8");
行
就在查询之前我得到goobledy gook(mojibake):
非常感谢任何帮助。
答案 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中删除。