我一直使用ISO-8859-1编码,但我现在要转向UTF-8 .
不幸的是我无法让它发挥作用 .
我的MySQL数据库是UTF-8,我的PHP文档是用UTF-8编码的,我设置了一个UTF-8字符集,但它仍然不起作用 .
(æ/ø/å这样的特殊字符不起作用)
希望你们能帮忙!
现在PDO是推荐的使用mysql的方法 . 有了它,您应该使用连接字符串来设置编码 . 例如:“mysql:host = $ host; dbname = $ db; charset = utf8”
连接到mysql后试试这个:
mysql_query("SET NAMES 'utf8'");
并在 UTF-8 without BOM 中编码PHP文档 .
我有同样的问题,但现在已经解决了 . 这是解决方案:
1st:更新你的表ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
第二步:在HTML代码的head部分添加:
关注Saleha A.Latif
确保与数据库的连接也使用此字符集:
$conn = mysql_connect($server, $username, $password); mysql_set_charset("UTF8", $conn);
根据php.net的 mysql_set_charset 文档:
mysql_set_charset
Note: This is the preferred way to change the charset. Using mysql_query() to execute SET NAMES .. is not recommended.
另见:http://nl3.php.net/manual/en/function.mysql-set-charset.php
检查当前连接的字符集:
echo mysql_client_encoding($conn);
另见:http://nl3.php.net/manual/en/function.mysql-client-encoding.php
如果您已完成这些操作并在表中添加奇怪的字符,您将看到它显示正确 .
请记住将连接编码设置为utf8 .
在ext \ mysqli中 $mysqli->set_charset("utf8")
$mysqli->set_charset("utf8")
在ext \ mysql中 mysql_set_charset("utf8")
mysql_set_charset("utf8")
使用其他数据库扩展,您可能必须运行查询,如 SET NAMES 'utf8'
SET NAMES 'utf8'
Some more details about connection encoding in MySQL
正如其他人所指出的,确保源代码是utf-8编码也有帮助 . 要特别注意没有BOM(字节顺序标记) - 它会在执行任何代码之前发送到浏览器,因此使用 Headers 或会话将变得不可能 .
连接到db后,运行查询SET NAMES UTF8
$db = new db(...); $db->query('set name utf8');
并将此标记添加到 Headers
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
你有这个错误吗? MySql SELECT UNION非法混合排序错误?只需将整个mysql设置为utf 8即可
SET character_set_connection = utf8;
7 回答
现在PDO是推荐的使用mysql的方法 . 有了它,您应该使用连接字符串来设置编码 . 例如:“mysql:host = $ host; dbname = $ db; charset = utf8”
连接到mysql后试试这个:
并在 UTF-8 without BOM 中编码PHP文档 .
我有同样的问题,但现在已经解决了 . 这是解决方案:
1st:更新你的表ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
第二步:在HTML代码的head部分添加:
关注Saleha A.Latif
确保与数据库的连接也使用此字符集:
根据php.net的
mysql_set_charset
文档:另见:http://nl3.php.net/manual/en/function.mysql-set-charset.php
检查当前连接的字符集:
另见:http://nl3.php.net/manual/en/function.mysql-client-encoding.php
如果您已完成这些操作并在表中添加奇怪的字符,您将看到它显示正确 .
请记住将连接编码设置为utf8 .
在ext \ mysqli中
$mysqli->set_charset("utf8")
在ext \ mysql中
mysql_set_charset("utf8")
使用其他数据库扩展,您可能必须运行查询,如
SET NAMES 'utf8'
Some more details about connection encoding in MySQL
正如其他人所指出的,确保源代码是utf-8编码也有帮助 . 要特别注意没有BOM(字节顺序标记) - 它会在执行任何代码之前发送到浏览器,因此使用 Headers 或会话将变得不可能 .
连接到db后,运行查询SET NAMES UTF8
并将此标记添加到 Headers
你有这个错误吗? MySql SELECT UNION非法混合排序错误?只需将整个mysql设置为utf 8即可