首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尽管有URIEncoding=" UTF-8“发行

尽管有URIEncoding=" UTF-8“发行
EN

Stack Overflow用户
提问于 2013-10-31 18:38:21
回答 1查看 4.7K关注 0票数 0

嗨,我试图使其中一个应用程序,我正在工作的UTF-8兼容。我的env如下: linux os,apahce web服务器作为http侦听器,tomcat作为servlet引擎。

使用mod_jk和tomcat配置的apache使用ajp连接器。

我从几个网站上阅读了UTF-8的基本指南,并根据我的建议尝试了以下几点

URIEncoding="UTF-8"中为连接器设置useBodyEncodingForURI =true和server.xml

使用LANG =en_US.UTF8在bashrc/..profile中设置语言

将apache服务器配置为默认使用utf-8编码,即将utf-8指定为

代码语言:javascript
复制
AddDefaultCharset utf-8

在启动tomcat时,将utf-8设置为java args。使用

代码语言:javascript
复制
JAVA_OPTS="-Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8"

我还验证了我的网页具有正确的元标记,配置为

代码语言:javascript
复制
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

尽管如此,我还是很难读懂UTF-8字。知道我哪里出问题了吗?

一个有趣的观察是,我面临的困难只有互联网发现者和合唱团。当我用火狐发送utf-8字符到我的服务器时,我能够正确地读取它们。然而,在IE和合唱团中,这些角色都被破坏了。知道问题可能在哪里吗?

唯一的改变,我不能之间的铬和火狐是在contentType头。

来自firefox的请求的请求头如下

代码语言:javascript
复制
Content-Type: application/x-www-form-urlencoded; charset=utf-8 

至于铬(还有可能的IE,我没有检查)在哪里?

代码语言:javascript
复制
Content-Type: application/x-www-form-urlencoded 

知道这里出了什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-01 09:26:38

最终解决了这个问题。下面的链接和底部报告的bug列表对于了解正在发生的马戏团非常有用:

http://wiki.apache.org/tomcat/FAQ/CharacterEncoding

基本上,我的一个过滤器试图读取请求参数,而另一个则需要执行请求。setCharacterEncoding(desiredEncoding)在读取查询参数之前。

因此,我尝试添加设置char enconding的SetCharacterEncodingFilter,显然这也不起作用,因为这个过滤器在tomcat 7中可用(虽然不确定),而且我使用的是tomcat6.0.x。

因此必须编写我自己的过滤器来正确地设置charEncoding。

有了这个,现在我就可以把所有那些管理好的角色从我的脑海中清除了。他们从最晚起就打扰我太多了..

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19714201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档