解决URL中文乱码问题

2016-12-08  本文已影响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编码格式来编码的。

  • 在Tomcat中设置编码为UTF-8的地方增加一个属性{seBodyEncodingForURI="true"}

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

上一篇下一篇

猜你喜欢

热点阅读