mysql字符集问题

SHOW VARIABLES LIKE 'character_set_%'


xmapp 1.7的配置文件在 \xampp\mysql\bin\my.cnf

xmapp 1.8的配置文件在 \xampp\mysql\my.ini

停止mysql服务后,改配置文件,改完后重新启动mysql服务就ok


对于mysql 5.1以上版本,在配置文件

在 [mysqld]下面加上character-set-server = utf8


5.0以前的版本,没试过,网上经验是

在[mysqld]下面加上default-character-set=utf8



Mysql安装的时候如果没有设置utf8编码,而是使用了默认的latin1,则默认情况下,创建的数据库和表也默认latin1,创建表的时候显式指定utf-8也可以,也能存储中文字符。

不过,如果在一个latin1的database下面访问一个utf-8的database里面的表里面的中文,同样可能出现乱码。

最近用Toad fro MySQL  Freeware查询中文字段都没有问题,但是修改数据库的操作中涉及的中文都导致了乱码,找了很久的解决办法


1)背景知识——MySQL的字符集设置。
mysql4.1及其之后的版本,对字符集的支持分为四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection):
character_set_server:这是设置服务器使用的字符集
character_set_client :这是设置客户端发送查询使用的字符集
character_set_connection :这是设置服务器需要将收到的查询串转换成的字符集
character_set_results :这是设置服务器要将结果数据转换到的字符集,转换后才发送给客户端
整个过程:
- client(如php程序)发送一个查询;
- 服务器收到查询,将查询串从character_set_client 转换到character_set_connection,然后执行转换后的查询;
- 服务器将结果数据转换到character_set_results字符集后发送回客户端。
你可以用下边两条命令查看一下系统的字符集和排序方式设定:
SHOW VARIABLES LIKE 'character_set_%';
SHOW VARIABLES LIKE ‘collation_%’;

假如你的系统和php网页是utf8编码,你可以将mysql的编码由默认的latin1改为utf8.
不过原来的数据,假如你用4.0,mysqldump出来的数据是latin1的编码,你再导入就会出现乱码。如果你原来的数据非常宝贵,那你还是用latin1编码吧。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值