mysql防止乱码怎么写_mysql防止中文乱码小方法

mysql字符集介绍

包括两部分 字符集CHARACTER和校对规则COLLATION

字符集是用来定义mysql字符串存储的方式

校对规则是定义比较字符串的方式

如果数据库存的是多过语言,就用utf8,每个汉字三个字节

如果只需支持中文,就用gbk,中英文都是占用2字节

查看mysql的字符集

show character set;

简写: showchar set;

查看现有数据库编码设置

mysql> show variables like '%chara%';| character_set_client | utf8 客户端 |

| character_set_connection | utf8 客户端 连接字符集 |

| character_set_database | utf8 数据库字符集 |

| character_set_filesystem | binary |

| character_set_results | utf8 客户端 返回结果字符集 |

| character_set_server | utf8 服务器字符集 |

| character_set_system | utf8 |

如果mysql不指定的话,客户端的字符集一般和系统一致

防止乱码方法小结

不乱码的思想:

Linux系统  客户端  服务端  库 表  程序

需要控制以上流程编码一致,防止乱码

查看 编码设置:

Show global variables like ‘%chara%’;

一.Linux系统

[root@www ~]# cat /etc/sysconfig/i18n

LANG="en_US.UTF-8"

SYSFONT="latarcyrheb-sun16"

二.mysql客户端

登录mysql 先做set names latin1; 这里的字符设置,要根据要插入表的字符编码,查看方法:(show create table tablename \G),然后再执行更新语句,或者插入中文。

在要执行的sql文件里,第一条添加 set names latin1;

通过mysql指定编码导入

Mysql –uroot –p’密码’ --default-charset-set=latin1  test  < test.sql;

三.mysql服务端

在配置文件my.cnf里指定编码 重启生效 永久生效

[client]

default-character-set=utf8[mysql]

default-character-set=utf8[mysqld]

default-character-set=utf8(5.1之前的版本)character-set-server=uft8 (适合5.5) 中文还是选择utf8

四.库和表

创建库和表的时候指定默认的字符编码

CREATE DATABASE IF NOT EXISTS my_db defaultcharset utf8 COLLATE utf8_general_ci;create table my_table (name varchar(20) not null default '') default charset utf8;

对于已有数据的表,修改字符集的思路

例如:latin1=>utf8

导出库和表的创建语句 将编码修改为utf8

导出所有数据

删除所有库和数据

利用新的建表和建库的语句创建新的库和表

导入数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值