[英]spring mvc path variables encoding
我正在使用spring mvc。 我正在沖浪:
http://localhost:8080/services/cities/פת.html
注意פת
是פת
而不是英語。
我的控制器是:
@RequestMapping(value="/services/cities/{name}", method=RequestMethod.GET)
public @ResponseBody List<SelectElement> getCities(@PathVariable String name) {
List<SelectElement> elements=null;
...
...
return elements;
}
問題是控制器接收פת
而不是正確的字符。
我該如何解決?
即使我沖浪到: http://localhost:8080/services/cities/%D7%A4%D7%AA.html
我遇到了這個問題。
如果您使用的是tomcat,則必須通過在Tomcat server.xml
配置中的<Connector>
上添加URIEncoding="UTF-8"
來指定請求的URL編碼,如下所述:
在這里,您有一個關於在Tomcat中編碼請求的有趣文檔
像CharacterEncodingFilter這樣的東西只能在POST請求中使用。 您需要更改Tomcat(或其他容器)配置才能使用不同於ISO-8859-1的URI。 但這不適用於所有瀏覽器,它取決於它們對URI的編碼方式。
所以我的建議總是使用最簡單的字符。 如果你告訴我們你想要實現什么,我們可以找到更好的解決方案(我想你不需要用戶也直接在地址欄中輸入城市名稱)。
使用CharacterEncodingFilter
過濾器...
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.