
1.server本身设定问题,例如还停留在latin1版本
2.table的语系设定问题(包含character与collation)
3.客户端程式(例如php,java)的连线语系设定问题
建议使用utf8!!!!
想要避免mysql的中文乱码问题,可以尝试以下方法:
1,对于版本问题,建议去官网更新最新的版本或者比较好用的版本;
2,创建数据库,创建表时没有对字符编码进行设定会造成乱码问题:
创建数据库的时候:CREATE DATABASE `test`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci'
建表的时候 CREATE TABLE `database_user` (
`ID` varchar(40) NOT NULL default '',
`UserID` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8
3,对于第三种情况,参考一下方法:
编辑linux服务器中/etc/my.cnf文件,在[mysql]段加入default_character_set=utf8
如果只是调试遇到乱码问题:
在编写Connection URL时,加上?useUnicode=true&characterEncoding=utf-8参数
并且在网页代码中加上一个"set names utf8"或者"set names gbk"的指令,告诉MySQL连线内容都要使用utf-8或者gbk。
utf8或者gbk
mysql 插入数据库乱码(假设插入前的数据时正确的) 解决:
要保证连接字符串正确:jdbc:mysql://****/database?useUnicode=true&characterEncoding=utf8
要保证数据库和表字段编码保持一致(我看了你的已经一致的了)
事实上经过上面两部,就能保证插入数据的准确了,但mysql插入之后显示也存在问题。个人发现mysql 在控制台现实会出现不准确现象,解决办法:
a.吧编码变量 character_set_results 设置为 gbk或者utf8
b.推荐一个工具,navicat for mysql 这个是mysql的一个管理工具。能保证只要插入的不乱码 显示就不会乱码。。
希望对你有所帮助!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)