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