服务端Servlet和MySQL的中文乱码问题

我在用eclipse在Mac上用Servlet写接口,然后遇到各种中文乱码问题,前后花去我很多时间。整理下,好坑啊~

首先,Mac上安装eclipse Luna以后,发现这货的默认编码是US-ASCII,当然我先要换成UTF-8了,怎么换,切到菜单,Eclispe——Preferences——General——WorkSpace——Text file eccoding换成UTF-8,以后创建的Project默认的编码格式都是UTF-8,但有一点要注意,我今天就被坑了,当创建html时,charset=“US-ASCII”,果断改成UTF-8。一个action过来到servlet这里就是类似于“&#20013”这样的乱码,最后记得在Servlet的service方法里request.setCharacterEncoding(“utf-8”);

response.setContentType(“text/json;charset=utf-8”);这样传过来的参数就不会有乱码问题了。如果是Windous平台,那么默认编码是GBK,传参记得统一编码,只要前后编码一致就可以,最好使用utf-8编码,国际通用,韩语,日语也是包括其中的。

下面来看MySQL的,如果插入中文数据抱着个错误:“mysql insert中文乱码无法插入ERROR 1366 (HY000): Incorrect string value”,打个status看看,

2014-06-30_18-56-35然后,呵呵

 

都改成一样的,windou下的GBK也是这样改的。还不行?

这个肯定行的,我很确定的。然后,当我的服务端成功获取带中文的参数以后,插入数据库,怎么是“??”,无法显示的状态。原来数据库配置的url也要指定编码:

 url = “jdbc:mysql://127.0.0.1:3306/EHDatabase?characterEncoding=utf8”;

这样OK,编码统一,终于可以专心写功能了— —!

 



发表评论

电子邮件地址不会被公开。 必填项已用*标注