php - 我应该对英语和西类牙语使用排序规则/字符集吗?

标签 php mysql utf-8 phpmyadmin content-type

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

Andrea El JabóN Y La Pasta Dental

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

最佳答案

假设数据库本身存在错误字符。手动修复它们。关于连接,我强烈建议如果可能的话切换到 mysqli (请参阅 here )(或 PDO,请参阅 here )。 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 编码数据(设置名称“utf8”)(解释 here )。

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

关于php - 我应该对英语和西类牙语使用排序规则/字符集吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19870816/

相关文章:

php - 如何通过负载均衡器维护 session ?

php - 制作 Laravel 集合的副本

php - 如何在 PHP 中使用命名空间实现类

R 的 read.csv 在第一列名称前面加上垃圾文本

unicode - 比较不同编码的文件

php - 如何用 PHP 替换\r\n 外部 <pre> 标签,而不是内部

php - 如何通过使用同一数据库中的另一个表来选择来创建表的 mysql 并集

mysql - SQL连接和项目总和

mysql - 将 MySql 表转换为 BerkelyDB

java - 将字符串编码为 UTF-8 和 7 位编码