解决URL中文乱码问题

首先在这里列出之前为了解决乱码问题而做的的一些设置(之前一直用的是表单提交):
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参数传递乱码的问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容