乱码问题

本文详细解析了HTML页面与Tomcat服务器中出现中文乱码的原因,并提供了具体的解决方案,包括调整HTML编码、设置Tomcat的URIEncoding以及处理HTTP请求中的中文参数。

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

HTML出现乱码

主要原因是html编码是gbk,而其中的中文字内容是用utf-8

备注:gbk的范围囊括中文,只是编码方式冲突

解决方法(使用utf-8编码):

<meta charset=utf-8" />

 

前提:很多情况下(如很多协议传输数据时)都使用ISO 8859-1编码

tomcat

问题: 程序需要发送http请求到服务器,请求的参数中包含了中文字符且其为UTF-8编码。使用的tomcat服务器,但服务器端后台程序中取到的参数的中文是乱码。

原因:如果没有设置URIEncoding, Tomcat默认是按ISO-8859-1进行URL解码,ISO-8859-1并未包括中文字符,这样的话中文字符肯定就不能被正确解析了

解决方法:

<Connector port="8080" maxThreads="150" minSpareThreads="25" 
maxSpareThreads="75" enableLookups="false" redirectPort="8443" 
acceptCount="100" debug="99" connectionTimeout="20000" 
disableUploadTimeout="true" URIEncoding="UTF-8"/>

 

接收请求时乱码

解决方法即将请求转为UTF-8编码

post

response.setCharcacterEncoding("utf-8")

get

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

 

转载于:https://www.cnblogs.com/yanze/p/10062887.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值