0

我有一个包含英语和西班牙语文章的网站.. 我的字符集<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 和 mySQL phpAdmin 表设置为utf8_general_ci,但我得到的字符很乱ó,例如

Andrea El JabóN Y La Pasta 牙科

从这里 [我应该为英语和西班牙语使用什么 MySQL 排序规则/字符集?这是向我们建议的,utf8_latin_ci但我没有看到utf8_latin_ci在 phpMyAdmin 中选择的选项。我有 MySQL 服务器版本:5.1.70-cll,phpMyAdmin 4.0.5

4

1 回答 1

0

假设错误的字符在数据库本身内。手动修复它们。关于连接,我强烈建议尽可能切换到mysqli(参见此处)(或PDO参见此处)。UTF-8 编码本身很好——无需切换到拉丁子集。

除此之外,据我所知,应该像这样打开与 utf-8 的正确连接:

$dbConnection = mysql_connect($host, $user, $password);
mysql_select_db($dbName, $dbConnection);
mysql_set_charset('utf8', $dbConnection);
mysql_query('SET NAMES "utf8"'); 

这应该在本地选择正确的数据库编码,即确保 PHP 需要 UTF-8 编码的数据(mysql_set_charset),并确保数据库理解它必须接受 UTF-8 编码的数据(SET NAMES "utf8")(此处解释)。

您还应该确保您的 PHP 应用程序发送有关您的编码的标头信息header('Content-Type: text/html; charset=utf-8');

于 2013-11-09T12:11:50.897 回答