便于移植和支持多语言)。 Mysql 可以设置服务器级字符集、数据库级字符集、数据表级字符集、表列的字符集,实际上,最终使用 字符集的地方是存储字符的列,比如,你设置 table1 中 col1 列是字符类型,col1 才用到了字符集,如果 table1 表的 col2 列是 int 类型,col2 不使用字符集的概念。 服务器级字符集、数据库级字符集、数据表级字符集都是为列的字符集做默认选项的。 Mysql 一定有一个字符集,可以通过启动时加参数指定 ,也可以编译时指定,也可以在配置文件里指定。 My
sql 服务器字符集,只是做为数据库级的默认值。创建数据库时,你可以指定字符集,如果没指定,就 使用服务器的字符集。同理,创建表时,你可以指定表级的字符集,如果没指定,使用数据库的字符集做 为表的字符集。创建列时,你可以指定某列的字符集,如果没指定,就使用表的字符集。 通常情况下,您只需设置服务器级的字符集,其它的数据库级,表级,以及列级的字符集,都继承自服务 器级字符集。 由于 UTF8 是最广的字符集,所以,一般情况下,我们设置 Mysql 服务器级的字符集为 UTF8! 总结: 要保证不乱码,需将三个编码统一: 一:是网页自身的编码 二:是 HTML 里指定的编码 三:是 PHP 告诉 Mysql 的编码(包括 character_set_client 和 character_set_results)。 第一和第二个编码,如果使用 DW 之类的编辑器写的网页,通常是一致的,但用记事本写的网页,有可能 不一致。 第三个编码,需要手工通知 Mysql。这步可以通过
在 PHP 里使用
mysql_query(“set names characterX”)