美文网首页
解决URL中文乱码问题

解决URL中文乱码问题

作者: 斐硕人 | 来源:发表于2016-12-08 16:20 被阅读0次

    首先在这里列出之前为了解决乱码问题而做的的一些设置(之前一直用的是表单提交):
    1.jsp

    <%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
    

    pageEncoding 是 jsp 文件本身的编码
    contentType 的 charset 是指服务器发送给客户端时的内容编码

    2.web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    

    3.servlet

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

    4.jdbc

    conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/test?user=root&password=123456&useUnicode=true&characterEncoding=UTF-8");
    

    为什么还会乱码

    对错误进行的定位及分析后发现应该是:
    URL编码之后向服务器发送请求,而在服务器中未正确解码。

    我好方

    URL的三个 javascript 编码函数:escape(),encodeURI(),encodeURIComponent()。

    解决

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

    其他方案

    设置 tomcat 的 URIEncoding(还没试过)

    在默认情况下,tomcat服务器使用的是ISO-8859-1编码格式来编码的。

    • URIEncoding参数对get请求的URL进行编码。所以我们只需要在tomcat的server.xml文件<Connector>标签中加上URIEncoding=”utf-8″即可。
    • 在Tomcat中设置编码为UTF-8的地方增加一个属性{seBodyEncodingForURI="true"}

    推荐阅读:
    解决URL中文乱码问题
    解决jsp参数传递乱码的问题

    相关文章

      网友评论

          本文标题:解决URL中文乱码问题

          本文链接:https://www.haomeiwen.com/subject/jidsmttx.html