Servlet三种中文乱码的解决方案

Servlet响应时中文乱码

出现情况:当我们使用响应向浏览器输出文本时乱码,例如:

response.getWriter().println("解决中文乱码问题");

说明响应的对应文本编码格式有误! 解决方法:

response.setContentType("text/html;charset=utf-8");

Servlet请求时中文乱码

出现情况:在本地HTML文件中输入中文文本,再用Servlet获取时: 因为Tomcat默认编码是ISO-8859-1,不支持中文所以导致中文乱码! 解决方法:

String chinesetext=new String(request.getParameter("chinesetext").getBytes("ISO-8859-1"),"UTF-8");)

上述情况也可以用以下方式(万金油)解决:

response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");

Servlet重定向时中文乱码

因为重定向的url不支持中文,故将中文转化成utf-8对应编码文本,再存入String中,继而输入至url: 解决方法:

String chineseurl=URLEncoder.encode(chinesetext,"utf-8");
经验分享 程序员 微信小程序 职场和发展