簡體   English   中英

字符編碼過濾器,韓文字符編碼問題

[英]Character encoding filter, Korean characters encoding issues

我們有一個基於Spring MVC的多語言Web應用程序。 我們已經在web.xml中設置了CharacterEncodingFilter,如下所述

<filter>
        <filter-name>SetCharacterEncodingFilter</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>SetCharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

使用這些配置,應用程序可以按預期正常運行。

當我們從jsp“직원의상세미니”傳遞此韓文字符時,在我們的服務層中,我們發現此字符被編碼為“ì§ììììì¸ë¯¸ë”

我們具有使用接收到的所有者名稱查詢jdbc元數據的功能,以獲取表中可用的表,如下所述

ResultSet resultSetTables = dbMetadata.getTables(owner,owner, "%", tableTypes);

1)此功能

ResultSet resultSetTables = dbMetadata.getTables("직원의상세미니","직원의상세미니", "%", tableTypes); 

返回模式“직원의상세미니”下的7個表

與編碼字符串“ì§ìììì¸ë¯¸ë”一起運行時

ResultSet resultSetTables = dbMetadata.getTables("ì§ìììì¸ë¯¸ë","ì§ìììì¸ë¯¸ë", "%", tableTypes); 

返回在相同模式“직원의상세미니”下可用的0個表。

我認為Tomcat是您的問題,您的URI編碼在HTTP連接器中可能默認為ISO-8859-1。

http://tomcat.apache.org/tomcat-5.5-doc/config/http.html ,您可能必須將URIEncoding設置為UTF-8並查看是否有幫助。

我在python控制台上快速嘗試,如果使用iso-8859-1提供的字符串,則會得到與您發布的相同的亂碼。

>>> a = '직원의상세미니'
>>> print a.decode("iso-8859-1")
ì§ìììì¸ë¯¸ë

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM