request.setCharacterEncoding("UTF-8")无效

我在servlet中写了request.setCharacterEncoding("UTF-8"),然后在网页地址后面加了?name=张三,测试了一下,结果发现reque... 我在servlet中写了request.setCharacterEncoding("UTF-8"),然后在网页地址后面加了?name=张三,测试了一下,结果发现request.setCharacterEncoding("UTF-8")并没有解决乱码问题,请问这是怎么回事? 展开
 我来答
cflty
2014-11-09 · TA获得超过166个赞
知道答主
回答量:40
采纳率:0%
帮助的人:35.9万
展开全部
你用是Tomcat 吗???如果是的话有下面几个地方需要你看看是否配置正确:
(1)Tomcat 的 conf 下的server.xml文件中将

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
里添加上后面3个编码的设置

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"

redirectPort="8443"

useBodyEncodingForURI="true"

IEncoding="utf-8"

URIEncoding="utf-8"/>

(2)

然后在servlet中配置如下:
如果你用的是 post方式
解决方案:
request.setCharacterEncoding("utf-8");

response.setCharacterEncoding( "utf-8" );

get方式

String string = request。getParamers("");

String = new String(string.getBytes("ISO8859-1","utf-8"));

(3)jsp页面中 pageEncoding="UTF-8"

(4)如果你用的是Eclipse或者MyEclipse的话,那么你在window 下的preferences中的左上角的输入框中输入spelling 在spelling这个页面中看看Encoding 默认是否设置为utf-8
追问
这是什么原因呢?我不是通过程序改过编码了吗?
追答
是这样,链接的话会被默认进行相关的编码处理,所以如果你的链接后面有中文的话,编码处理之后就会出现乱码,如果你在servlet中接收的时候不做处理的话,中文就还是乱码啊,为了方便的话,你可以在我说的四个地方看看将编码统一起来
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
作一伞喵过0q
2017-11-24 · 超过22用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:29万
展开全部
request.setCharacterEncoding("UTF-8");
这句话必须放在最前面。。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式