0

可能重复:
在 MySQL 中设置名称 utf8?

我正在编写 PHP 以连接到 MySQL 数据库。我看过一些将编码设置为 UTF8 的示例mysql_query("SET NAMES utf8");

为什么这样做?这样做有什么好处,避免了哪些问题?

4

3 回答 3

2

这样,数据库将以 UTF8 编码返回数据(如果您正在插入/更新,则期望这样)。如果您尝试从服务器查询非 ascii 字符并以 UTF8 格式显示内容,并带有 UTF8 编码标头,则很有用。否则你会看到破碎的字符。

如果数据库中的数据采用非 ascii 和非 utf8 编码/排序规则(如 CP-1251 用于西里尔字母)或者您在同一数据库中有多个排序规则,则特别有用。通过这种方式,您可以确保以单一通用编码获取/放入所有数据,您都理解并喜欢 :)

一般来说,这是一个很好的做法。大多数情况下,您无法确保没有非 ascii 字符的数据,或者不会插入此类数据。因此,始终这样做只是一个好习惯,因为 UTF8 似乎是当今被广泛接受和喜爱的数据编码。

于 2012-09-30T21:19:52.907 回答
0

MySQL 参考非常简洁地回答了这个问题:http: //dev.mysql.com/doc/refman/5.0/en/charset-connection.html 请务必在 SO 之前尝试使用 google :/ 虽然我不太介意,很多人确实如此。

于 2012-09-30T21:20:26.810 回答
0

通过这样做,您告诉 php 以 UTF-8 与 mysql 通信。运行这行代码的成本几乎为零。在性能方面不会有任何缺点。如果您不想使用它并拥有权限,您应该从您的 mysql 设置中更改它。

请参考以下链接: http ://dev.mysql.com/doc/refman/5.0/en/charset-connection.html

于 2012-09-30T21:22:17.120 回答