用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
这样写就不报红线了。
[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
这样写就不报红线了。