可能重复:
SET NAMES utf8 in MySQL?
我正在编写PHP以连接到MySQL数据库。我看过一些将编码设置为UTF8 mysql_query("SET NAMES utf8");
为什么这样做?这样做有什么好处,避免出现什么问题?
答案 0 :(得分:2)
这样,数据库将以UTF8编码返回数据(如果要插入/更新,则期望这样)。如果您尝试从服务器查询非ascii字符并使用UTF8编码标头以UTF8格式显示内容,则非常有用。否则你会看到破碎的字符。
如果数据库中的数据是非ascii和非utf8编码/排序规则(如用于西里尔文的CP-1251),或者如果在同一数据库中有多个排序规则,则特别有用。通过这种方式,您可以确保获得/将所有数据置于单一通用编码中,您既了解又喜欢:)
一般来说,这是一个很好的做法。大多数情况下,您无法确保没有非ascii字符的数据,或者不会插入此类数据。所以这总是很好的做法,因为UTF8似乎是目前被广泛接受和喜爱的数据编码。
答案 1 :(得分:0)
MySQL参考文章非常简洁地回答: http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html 一定要尝试在SO之前使用谷歌:/虽然我不太介意,很多人真的做。
答案 2 :(得分:0)
通过这样做,你告诉php与UTF-8中的mysql通信。运行这行代码的成本接近于零。性能没有任何缺点。如果您不想使用它并拥有权限,则应该从mysql设置中更改它。
请参阅以下链接: http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html