举个例子:
在每次创建表的时候都在最后加上 character set = utf8 就可以很好的支持中文。
2,修改已经有的table的编码
当使用默认编码创建了一个table的时候,是不能支持中文的,这时候使用如下语句对table_name进行修改:
此后再往这个table插入中文的时候,就可以正常存储和读取了,但不知道为什么之前的乱码还是不能纠正,只能新插入的数据没有问题。
[注意] 我google了一下,有些地方说这个命令也行,但是我测试以后并不行
alter table table_name charset=utf8 #这个语句并没有让table_name支持中文
分析原因:这是因为之前修改了数据库的编码,但数据表的编码却没有跟着改变导致的。安装mysql 时,使用的是latin编码(随后修改为utf8)。建的数据表是在latin编码下建立的。而jsp页面使用的是utf8,所以无法插入数据。。。
1.修改mysql数据库编码
修改MySQL安装目录下的my.ini文件
default-character-set=utf8
character-set-server=utf8
然后重启MySQL服务,MySQL 没有重启的命令,要先停止,然后再启动。
这样就确保了,mysql中的编码类型
用show variables like 'char%'或status命令 查看得到如下:
红色方框应改为gb2312编码,否则在dos下显示中文乱码。
2.解决方法
设置表的编码格式,执行alter table 数据表名 CONVERT TO CHARACTER SET utf8命令
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)