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 個のテーブルを返します。