从包含特殊字符的GET请求中读取请求参数时遇到问题。我是这样做的:
我用javascript创建请求url,驱动程序名称的值是encodeURIComponent('sorumluluğumuzu')结果是这个URL,它在firefox中正确显示:http://localhost:8080/driver/list.xhtml?sl=1&驱动程序名称=sorumlulu%C4%9Fumuzu
但是,当我在JSFbean中读取请求参数时:FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap()
该值等于sorumluluÉumuzu
我在JSF2中遇到了这个omTomcat7,但我们在Websphere6和JSF1.2上注意到了同样的问题。
有什么想法吗?
Tomcat默认URL使用ISO-8859-1解码GET请求参数。您需要通过Tomcat的/conf/server.xml
的<Connector>
元素中的URIEncoding
属性将其更改为UTF-8。
<Connector ... URIEncoding="UTF-8">
另请参阅:
- Unicode-如何正确输入字符?-JSP/Servlet请求