【发布时间】:2014-08-14 17:36:38
【问题描述】:
ææä¸ä¸ªå¨ tomcat 7 ä¸è¿è¡ç spring roo web åºç¨ç¨åºãææä¸ä¸ª spring roo çæçæ§å¶å¨æ¹æ³ï¼æå°å ¶ç¨äºè°è¯é®é¢ï¼
@RequestMapping(params = "find=ByFirstNameEqualsAndLastNameEquals", method = RequestMethod.GET)
public String findAuthorsByFirstNameEqualsAndLastNameEquals(
@RequestParam("firstName") String firstName,
@RequestParam("lastName") String lastName,
@RequestParam(value = "page", required = false) Integer page,
@RequestParam(value = "size", required = false) Integer size,
@RequestParam(value = "sortFieldName", required = false) String sortFieldName,
@RequestParam(value = "sortOrder", required = false) String sortOrder,
Model uiModel
) {
System.out.println("find author lastname: " + lastName);
String lastNameUTF8 = null;
String firstNameUTF8 = null;
try {
lastNameUTF8 = new String(lastName.getBytes("ISO-8859-1"), "UTF-8");
System.out.println("lastnameUTF8: " + lastNameUTF8);
firstNameUTF8 = new String(firstName.getBytes("ISO-8859-1"),
"UTF-8");
System.out.println("lastnameISOtoUTF8: " + firstNameUTF8);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
...
æ£å¦äººä»¬å¨æ¥å¿ä¸çå°ç飿 ·ï¼
find author lastname: èÃ<U+0082>Ã<U+0080>õüñõÃ<U+0080>ó
lastnameISOtoUTF8: ШÑÑембеÑг
请æ±åæ° firstName å lastName ç¼ç 为 ISO-8859-1ï¼ä½æå¸æå®ä»¬ç¼ç 为 UTF-8ãææ³æçå°äºå¤§å¤æ°ç±»ä¼¼çé®é¢
- Spring MVC URIEncoding can't send requestparam correctly
- Spring/Rest @PathVariable character encoding
- Query String is decoded by Spring Framework
- How does URIEncoding = 'UTF-8' work?
- ...
å¹¶ç¡®ä¿å°ææé 置设置为 UTF-8ï¼
web.xmlï¼
<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>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
tomcats server.xmlï¼
...
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"
...
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
URIEncoder="UTF-8"
/>
java åæ°ï¼
/usr/local/jdk7/bin/java -Duser.language=en -Duser.country=US -Dfile.encoding=UTF-8 /usr/local/tomcatODM_TEST/bin/bootstrap.jar:/usr/local/tomcatODM_TEST/bin/tomcat ... org.apache.catalina.startup.Bootstrap start
æµè§å¨ç¼ç ä¹è®¾ç½®ä¸º UTF-8ï¼æå¡å¨å客æ·ç«¯ä¸çç³»ç» LANGï¼
$ echo $LANG en_US.utf8
æä¸ç¥éè¿æä»ä¹åæ³å¯ä»¥æè±æçæ³ç spring mvc çé£ä¸ªæè¶£ç ISO-8859-1 è§£ç ...... æä»»ä½æ³æ³åï¼æå¨çä»ä¹ï¼
ãé®é¢è®¨è®ºãï¼
-
æµè§å¨å¢ï¼
-
æ¯ææ£æ¥ç第ä¸ä»¶äºï¼å®çç¼ç ä¹è®¾ç½®ä¸º UTF-8ãç¨ä¸åçæµè§å¨æµè¯ãææ³é£æ¯é误çå°æ¹ï¼å 为æå° UTF-8 ç¼ç 为 ISO-8859-1ã
-
é£ä¹ html å¢ï¼
-
ææ³è¿ä¹æ¯é误çå°æ¹ï¼å 为æå° UTF-8 ç¼ç 为 ISO-8859-1ã
标签: spring spring-roo http-request-parameters uriencoding