MySQL中文乱码

用SSH+MySQL开发网站,jsp页面设置全部为UTF-8编码,存到数据库中,在sqlyog中查看数据库,发现数据库为中文乱码,我的解决方法包括一下几条:

[color=green][size=large]第一,设置sqlyog建库建表编码[/size][/color]
在sqlyog中用可视化操作建库、建表的时候都可以设置编码方式,有datebase charset选项和Datebase collation选项,默认为default,此时,可以统一修改为utf8以及utf8_bin
见表时也可以在charset和collation选项中设置编码方式。

[size=large][color=green]第二,修改my.ini文件[/color][/size]
网上很多帖子说修改该文件,修改客户端编码,mySQL安装路径:C:\Program Files\MySQL\MySQL Server 5.1,打开my.ini文件,找到下列几行,
[client]
port=3306
[mysql]
default-character-set=utf8

utf8是我修改后的,默认是latin1。
修改后重启MySQL服务器。

再往下面几行有[mysql]端的配置,仍然可以看到default-character-set=latin1,
但是我修改为utf8后,MySQL不能启动,不知道为什么。

[size=large][color=green]第三,修改项目链接方式[/color][/size]
在修改了上述两项之后,我通过页面插入数据库的中文依然是??????,终于又看到一篇文章,修改spring配置文件applicationContext.xml文件的数据源配置项:
<property name="jdbcUrl" value="jdbc:mysql:///wkh?characterEncoding=UTF-8" />
在链接数据库名后面加上参数?characterEncoding=UTF-8。

这样问题解决了。

不过,有个小疑问,就是网上说加的参数是
useUnicode=true&characterEncoding=utf8。可是我加了useUnicode选项报红线,我去掉它就好了。不知道为什么。

ps: 刚才又搜了一下,发现问题在这:useUnicode=true&characterEncoding=utf8
这样写就不报红线了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值