JSP 文件中文乱码的类型分析及解决方案

本文详细分析了JSP文件中文乱码的常见类型,包括客户端乱码和传输过程中的乱码问题。针对GET和POST提交方式,分别提供了解决方案,如修改jsp文件头部设置,调整Tomcat服务器配置等。通过这些方法,可以有效解决JSP表单提交时的乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、客户端乱码

解决方案:在 jsp 文件上加以下代码:

<%@ page language="java" contentType="text/html"; charset=utf-8"
    pageEncoding="utf-8"%><!--关键是pageEncoding要设置为utf-8,否则乱码依旧存在-->
<meta http-equiv="Content-Type" content="text/html"; charset=utf-8">
2、服务器端乱码
解决方案:在 jsp 文件上加以下代码:
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%><!--关键是pageEncoding要设置为utf-8,否则乱码依旧存在-->

上面解决完服务器端乱码可能还是会导致乱码,因为尚未解决“传输过程乱码”问题。


3、传输过程乱码

分为 GET 和 POST 提交方式这两种

3.1、GET 方式提交解决方案:

获取属性值格式:

   String username = request.getParameter("username");
   //解决传输过程乱码(get方式提交表单)
   String usernameChinese = new String(username.getBytes("iso-8859-1"),"utf-8");<!--将编码转化为 utf-8 编码-->
   out.print(usernameChinese);

3.2、POST 方式提交解决方案:

比较方便,设置一句话(全局作用域)搞定:

   //解决传输过程乱码post方式提交表单一次性设置编码格式即可!
   request.setCharacterEncoding("utf-8");

3.3、另外一种解决 GET 方式提交表单乱码解决方案(简便许多):

直接在文件:C:\apache-tomcat-7.0.47\conf\server.xml(根据你安装路径具体去找此文件),然后修改如下:


不过发现重启 tomcat 之后此文件又恢复回去了,即修改无效,如图所示在另外一个文件修改保存后再回去之前那文件修改并保存就生效了,如下图所示:


到此就解决了 GET 方式提交表单乱码了,但是 POST 这种解决方式不起作用,于是就用上述方法3.2去解决即可!

查看传输过程是否乱码可以在控制台输出,再到 console 窗口查看:

System.out.println(username);

可以自己写个表单提交测试测试。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值