中文乱码处理

 暂时遇到的中文乱码解决,统一以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>

 

 

 

 

 

posted @ 2019-10-22 13:17  Boogiever  阅读(658)  评论(0编辑  收藏  举报