UTF-8问题PHP / MySQL

UTF-8 problems PHP/MySQL

我一直使用ISO-8859-1编码,但现在我要介绍UTF-8。

不幸的是我不能让它工作。

我的mysql db是utf-8,我的php文档是用utf-8编码的,我设置了一个utf-8字符集,但它仍然不起作用。

(这是特殊的字符,比如???那不管用)

希望你们能帮忙!


确保与数据库的连接也使用了此字符集:

1
2
$conn = mysql_connect($server, $username, $password);
mysql_set_charset("UTF8", $conn);

根据php.net上mysql_set_charset的文档:

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$mysqli->set_charset("utf8")

在Extmysql中做mysql_set_charset("utf8")

对于其他数据库扩展,您可能需要像SET NAMES 'utf8'

有关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
mysql_query("SET NAMES 'utf8'");

并将PHP文档编码为UTF-8,不带BOM。


你有这个错误吗?mysql select union非法混合排序错误?只需将整个mysql设置为utf 8,然后

1
SET character_set_connection = utf8;