我们有一个基于 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 个表。