当我在http://grepcode.com/file/repo1.maven.org/maven2/org.apache.tomcat/tomcat-catalina/7.0.0/org/apache/catalina/connector/Request查看 tomcat 源代码时。 java#Request.parseParameters%28%29
我找不到在哪里为来自 get 方法的 queryString 设置编码,以及该方法中的配置如何URIEncoding="UTF-8"
工作server.xml
。
问问题
11826 次
2 回答
3
该URIEncoding
参数是您正在寻找的。它设置在 URI 解码查询字符串时要使用的字符编码。
您将其server.xml
用作Connector
实体的属性。
如果过去成功使用它。
于 2012-12-27T12:14:19.963 回答
1
首先,让我们使用更新版本的 Tomcat。7.0.0 已有多年历史:来自 Tomcat 7.0.34 的 Request.java
其次,该parseParameters
方法不设置编码:它获取已由其他组件设置的编码。可能已设置内容编码的一些地方:
- 连接器的 URIEncoding(根据 HTTP RFC 默认为 ISO-8859-1 AS)
- 请求正文编码(来自 HTTP 请求的 Content-Type 标头)
- 另一个组件——可能通过查看参数的值来嗅探编码
如果您只想在您的站点上无条件地将 URI 编码设置为 UTF-8,那么只需URIEncoding
使用<Connector>
.
您的问题的直接答案是 server.xml 的URIEncoding
属性在此方法中不起作用:它在其他地方起作用。
于 2012-12-27T22:15:21.197 回答