栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

UTF-8编码的j_security_check用户名在Tomcat领域中被错误地解码为Latin-1

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

UTF-8编码的j_security_check用户名在Tomcat领域中被错误地解码为Latin-1

在您的示例中,表单使用%编码将“á”的UTF-8字符发送给Tomcat(因此,它是%C3%A1)。但是,Tomcat将其解释为Latin1,这是POST的默认编码。

因此,Tomcat将在内部将C3A1存储为“Ô,因为在Latin1编码中C3为“Ô,而A1为“¡”。

当您要求输入username.getBytes()时,它将创建一个UTF-8编码的字节数组,因此它将在UTF-8字符集C383
C2A1中查找两个字符’á’。

详细描述此问题的FAQ和建议的解决方案:http
:
//wiki.apache.org/tomcat/FAQ/CharacterEncoding#Q3

在server.xml中更改FormAuthenticator的Valve以指定

characterEncoding="UTF-8"

    <Context path="/YourSercureApp"> <Valve className="org.apache.catalina.authenticator.FormAuthenticator" disableProxyCaching="false" characterEncoding="UTF-8" />    </Context>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/417352.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号