暂时遇到的中文乱码解决,统一以UTF-8为编码方式:
(一)文件本身要以UTF-8编辑保存的
Eclipse---Window---Preference---workspace---UTF-8
(二)浏览器以UTF-8解析:
手动:浏览器右键,编码格式改为UTF-8
编码:<meta>标签模拟response头,起到告诉浏览器编码方式的作用
<meta contentType="text/html; charset=UTF-8">
response.setContentType("text/html;charset=UTF-8");
(三)response乱码问题:
response.setCharacterEncoding("UTF-8");
上句的目的是用于response.getWriter()输出的字符流的乱码问题,如果是response.getOutPutStream()是不需要此种解决方案的。
response.setContentType("text/html;charset=UTF-8");
response.setHeader("text/html;charset="UTF-8");
上句是控制浏览器行为
(四)request乱码问题:
- 表单提交方式为post时出现的乱码
①,使用setCharacterEncoding(String code)方法设置统一字符编码
request.setCharacterEncoding("GBK");
②,对获取的信息进行重新编码
String name=request.getParameter("username");
byte b[]=name.getBytes("ISO-8859-1");
name=new String(b); - 表单提交方式为get时出现的乱码
①对接收到的字符进行重新编码(post提交方式解决办法的第二种)
②配置Tomcat下server.xml的Connector节点 - JSP页面通过URL传递中文参数出现的乱码
①配置Tomcat下server.xml的Connector节点
②对URL中的中文字符进行编码
(五)cookie乱码问题:
在放入cookie前进行编码,从cookie中取出时解码:需要注意应导入包含URLEncoder.encode的包(import="java.net.*" )
编码:
String us=URLEncoder.encode(request.getParameter("userName"),"utf-8");
String pa=URLEncoder.encode(request.getParameter("password"),"utf-8");
解码:
String username=URLDecoder.decode(request.getParameter("uname"),"utf-8");
String password1=URLDecoder.decode(request.getParameter("password"),"utf-8");
(六)javaBean向JSP传值乱码问题:
在<jsp:setProperty>前加上<%request.setCharacterEncoding("utf-8"); %>
<%request.setCharacterEncoding("utf-8"); %>
<jsp:setProperty name="user" property="*" />
转载详细文章:https://www.cnblogs.com/maohuidong/p/8044564.html
(七)jQuery使用serialize()表单序列化时出现乱码问题:
原因:.serialize()自动调用了encodeURIComponent方法将数据编码了
解决方法:调用decodeURIComponent(XXX,true);将数据解码
(八)jsp页面使用js出现乱码问题:
应在jsp和js都加上utf-8编码方式:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.min.js" charset="UTF-8"></script>