1

我已经为此工作了一段时间,并且尝试了许多提供的解决方案 - 无济于事。

在 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):

在此处输入图像描述

任何帮助将非常感激。

4

1 回答 1

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 中删除。

于 2013-03-26T06:54:10.820 回答