UTF-8 problems PHP/MySQL
我一直使用ISO-8859-1编码,但现在我要介绍UTF-8。
不幸的是我不能让它工作。
我的mysql db是utf-8,我的php文档是用utf-8编码的,我设置了一个utf-8字符集,但它仍然不起作用。
(这是特殊的字符,比如???那不管用)
希望你们能帮忙!
确保与数据库的连接也使用了此字符集:
1 2 |
根据php.net上
1 2 3 | 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
检查当前连接的字符集:
1 |
另请参见:http://nl3.php.net/manual/en/function.mysql-client-encoding.php
如果您完成了这些操作并向表中添加了奇怪的字符,您将看到它显示正确。
记住也要将连接编码设置为utf8。
在ext中mysqli do
在Extmysql中做
对于其他数据库扩展,您可能需要像
有关mysql中连接编码的更多详细信息
正如其他人指出的,确保源代码是UTF-8编码的也有帮助。请特别注意不要使用bom(字节顺序标记)-它将在执行任何代码之前发送到浏览器,因此不可能使用头或会话。
连接到数据库后,运行查询集名称utf8
1 2 | $db = new db(...); $db->query('set name utf8'); |
并将此标记添加到标题
1 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
现在PDO是使用MySQL的推荐方法。这样,您应该使用连接字符串来设置编码。例如:"mysql:host=$host;dbname=$db;charset=utf8"
我也有同样的问题,但现在解决了。解决方案如下:
第一:更新UR表更改表tbl_名称默认字符集utf8整理utf8_-general_-ci;
第二:在HTML代码的头部分添加此内容:
当做萨莱哈·拉蒂夫
连接到MySQL后尝试此操作:
1 |
并将PHP文档编码为UTF-8,不带BOM。
你有这个错误吗?mysql select union非法混合排序错误?只需将整个mysql设置为utf 8,然后
1 | SET character_set_connection = utf8; |