首页 > 编程知识 正文

mysql命令修改字符集,mysql设置字符集

时间:2023-05-03 05:18:24 阅读:120805 作者:2578

1 .先看看latin1 (见百度百科) ) ) ) )。

Latin1是ISO-8859-1的别名,在某些环境中写作Latin-1。

ISO-8859-1编码是单字节码,与ASCII向后兼容。 其编码范围在0x00-0xFF、0x00-0x7F之间完全与ASCII一致,0x80-0x9F之间为控制字符,0xA0-0xFF之间为字符符号。

ISO-8859-1中的字符除了ASCII中的字符外,还包括与西欧语言、希腊语、泰语、阿拉伯语和希伯来语相对应的字符符号。 欧元符号出现比较晚,未收录在ISO-8859-1中。

ISO-8859-1的编码范围使用单字节内的所有空间,因此不会舍弃在支持ISO-8859-1的系统上传输和存储其他编码字节流。 也就是说,将其他编码字节流视为ISO-8859-1编码没有问题。 这是一个重要的特性,MySQL数据库的缺省编码是Latin1,它利用了这一特性。 ASCII代码是7位容器,ISO-8859-1代码是8位容器。

2 .稍微考虑一下字符集

是的,你不需要太在意。 如果数据库中表的字符集为latin1,则默认情况下也支持中文

latin1包含所有1字节的值,其他所有码流均可视为latin1

将用gbk编码的字符串写入latin1的表时,不会出现任何问题,而是以字节流的形式保存

从表中读取写入的字符串没有任何问题,读取的字节流与最初写入的字节流完全一致

读取后,如果在终端下方,则理解为locale类型(如果locale系为gbk,则此时写入的gbk中文列被正常回波)。

读取后写入文件时,文件编码方式为当时写入的字节流编码,例如以gbk写入时,读取并保存到文件后,文件编码也为gbk! 但是,混合书写时(utf-8 gbk ),编辑器会隐藏起来,可能会发生乱码。

注意:纯文本文件通常没有标头,编辑器可以从字节流中识别编码和字符集

3 .综上所述,无论是构建DB还是访问DB,只要采用默认的latin1,不仅可以支持中文,还可以支持任意的编码方式

附上一些数据库中文代码的经验教训:

1 .从可维护的观点出发,latin1没有问题,但尽量变更为utf8或gb系列

2 .发生乱码时:

SHOW VARIABLES LIKE 'character% '

SHOW VARIABLES LIKE 'collation_% ';

a、保证数据库中存储的数据与数据库代码匹配,即数据代码与character_set_database匹配;

b、保证通信字符集与数据库字符集的匹配,即character_set_client、character_set_connection与character_set_database的匹配

c、保证选择返回与程序代码匹配,即character_set_results与程序代码匹配;

d、保证程序代码与浏览器、终端代码一致

3 .为简化起见,确保每个字符集一致,写入mysql配置文件,在客户端设置字符集(set names 'xxx ),并确保字节流编码正确,然后写入和读取

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。