全部展开
mysqllatin1数据库支持中文编码。
ISO-8859-1编码是单字节码,与ASCII向后兼容,e 5a 48 de 588 b 662616964757 a 686964616 f 31334363432编码范围为0x00-0xFF,0x00-0x7F
ISO-8859-1中的字符除了ASCII中的字符外,还包括与西欧语言、希腊语、泰语、阿拉伯语和希伯来语相对应的字符符号。 欧元符号出现比较晚,未收录在ISO-8859-1中。
ISO-8859-1的编码范围使用单字节内的所有空间,因此不会舍弃在支持ISO-8859-1的系统上传输和存储其他编码字节流。
也就是说,将其他编码字节流视为ISO-8859-1编码没有问题。 这是一个重要的特性,MySQL数据库的缺省编码是Latin1,它利用了这一特性。 ASCII代码是7位容器,ISO-8859-1代码是8位容器。
如果数据库中表的字符集为latin1,则默认情况下也支持中文。 latin1可以覆盖所有1字节的值,其他码流可以视为latin1。
将gbk编码的字符串写入latin1的表中没有任何问题。 保存的是字节流,从表中读取写入的字符串没有任何问题。 此外,读取的字节流与原始写入的完全匹配。
读取后,如果在终端下方,则理解为locale类型(如果locale系为gbk,则此时写入的gbk中文列被正常回波)。
读取后写入文件时,文件编码方式为当时写入的字节流编码,例如以gbk写入时,读取并保存到文件后,文件编码也为gbk! 但是,混合编写(utf-8 gbk )可能会隐藏编辑器,导致乱码。
纯文本文件通常没有头,编辑器可以自己从字节流中识别编码方法和字符集
总之,无论是构建DB还是访问DB,只要采用默认的latin1,不仅可以支持中文,还可以支持任意的编码方式。
扩展数据:
中文编码注意事项:
1 .从可维护的观点出发,可以使用latin1,但尽量变更为utf8或gb系列
2 .发生乱码时:
showvariableslike ' character % ' showvariableslike ' collation _ % ';
要确保数据库中存储的数据与数据库代码匹配,即数据代码与character_set_database匹配; 要确保通信的字符集与数据库的字符集匹配,character_set_client、character_set_connection与character_set_database匹配
保证SELECT返回与程序代码匹配,即character_set_results与程序代码匹配; 保证程序代码与浏览器、终端代码一致
为简便起见,请确保每个字符集一致,写入mysql配置文件,每次在客户端设置字符集' setnames'xxx ',并确保字节流编码正确。