(作者:苦行者;撰写时间:2020年12月7日)
一、response对象输出中文,产生乱码。
1、字节(ServletOutputStream getOutputStream() 字节输出流)
*解决方案
*设置浏览器打开文件时采用的编码
response.setHeader(“Content-Type”,“text/html;charset=UTF-8”);
*获取字符串的byte数组采用的编码
“哈喽我的”.getBytes(“UTF-8”);
2、字符(PrintWriter getWriter() 字符输出流)
*解决方案
*设置浏览器打开文件时采用的编码
response.setHeader(“Content-Type”,“text/html;charset=UTF-8”);
*设置response缓冲区的编码
response.setCharacterEncoding(“UTF-8”);
3、简写方式(等于以上两种方式)
*response.setContentType(“text/html;charset=UTF-8”);
二、request对象获取中文产生乱码
*POST请求乱码:request.setCharacterEncoding(“UTF-8”);
*GET请求乱码
解决方案一:修改tomcat/conf/server.xml
*必须有修改tomcat服务器配置文件权限
解决方案二:逆向编解码
username = URLEncoding.encode(username,“ISO-8859-1”);
username = URLEncoding.encode(username,“UTF-8”);
解决方案三:简写的方式(推荐使用)(String构造方法重构)
username = new String(username.getBytes(“ISO-8859-1”),“utf-8”);
有关Java-Servlet中文乱码的问题
最新推荐文章于 2022-04-12 23:00:57 发布