欢迎来到天天文库
浏览记录
ID:15563841
大小:63.50 KB
页数:21页
时间:2018-08-04
《mysql 中文乱码 解决方法集锦》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、mysql中文乱码解决方法集锦第一个方法:MySQL4.1中文乱码的问题最近要将MySQL4.0升级到MySQL4.1,发现了中文乱码的问题,希望以下见解对大家有用。1.MySQL4.1在文字上有很大改进,它有了CharacterSet与Collation的慨念。2.在MySQL4.0,一般的程式都会将文字以拉丁文(latin)来储存,就算我们输入中文字,结果仍是放在以拉丁文设置的文字栏里头,这对MySQL4.0与以MySQL4.0为基楚的程式来说,并不会有问题。3.可是MySQL4.1的系统编码是预设用UTF-
2、8的,当要restoreMySQL4.0的backup档到MySQL4.1时,乱码就出现了。原因在于MySQL4.1将latin码转换过来,而后转换是并不完全完美的,这导致了出现少量文字出现乱码现象。解决PHP存取MySQL4.1乱码问题QUOTE:从MySQL4.1开始引入的多语言支持确实很棒,而且一些特性已经超过了其他的数据库系统。不过我在测试过程中发现使用适用于MySQL4.1之前的PHP语句操作MySQL数据库会造成乱码,即使是设置过了表字符集也是如此。我读了一下新的MySQL在线手册中第十章"Chara
3、cterSetSupport"后终于找到了解决方法并测试通过。MySQL4.1的字符集支持(CharacterSetSupport)有两个方面:字符集(Characterset)和排序方式(Collation)。对于字符集的支持细化到四个层次:服务器(server),数据库(database),数据表(table)和连接(connection)。查看系统的字符集和排序方式的设定可以通过下面的两条命令:CODE:mysql>SHOWVARIABLESLIKE'character_set_%';+----------
4、----------------+----------------------------+
5、Variable_name
6、Value
7、+--------------------------+----------------------------+
8、character_set_client
9、latin1
10、
11、character_set_connection
12、latin1
13、
14、character_set_database
15、latin1
16、
17、character_set_results
18、latin1
19、
20、character_s
21、et_server
22、latin1
23、
24、character_set_system
25、utf8
26、
27、character_sets_dir
28、/usr/share/mysql/charsets/
29、+--------------------------+----------------------------+7rowsinset(0.00sec)mysql>SHOWVARIABLESLIKE'collation_%';+----------------------+-------------------+
30、Variable_n
31、ame
32、Value
33、+----------------------+-------------------+
34、collation_connection
35、latin1_swedish_ci
36、
37、collation_database
38、latin1_swedish_ci
39、
40、collation_server
41、latin1_swedish_ci
42、+----------------------+-------------------+3rowsinset(0.00sec)上面列出的值就是系统的默认值。如果你奇怪系统怎么默认是l
43、atin1的瑞典语排序方式,原因是MySQL由瑞典的T.c.X.DataKonsultAB公司(目前公司名称为MySQLAB)开发,不用再多说了吧。当我们按照原来的方式通过PHP存取MySQL数据库时,就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:SETNAMES'utf8';它相当于下面的三句指令:CODE:SETcharacter_set_client=utf8;SETcha
44、racter_set_results=utf8;SETcharacter_set_connection=utf8;再试试看,正常了吧?就是连接之后加个查询CODE:$this->query(”SETNAMES‘utf8'”);看了手册第10章觉得主要还是CharacterSets的问题。character_set_client,character_set_results,
此文档下载收益归作者所有