gpt4 book ai didi

java - Oracle 驱动程序行为不端 Tomcat 6.0

转载 作者:行者123 更新时间:2023-11-28 23:44:28 25 4
gpt4 key购买 nike

我有一个 Tomcat 6.0 应用程序服务器,带有一个使用 oracle 连接的非常简单的 Web 应用程序。连接本身在 server.xml 文件中定义为 JDBCRealm。

服务器的默认编码是latin1。数据库编码为UTF-8。通常一切正常,特殊字符按应有的方式插入数据库,并以适当的编码检索。如果我没记错的话,这是因为 Oracle 驱动程序会自动解决任何编码不匹配问题。

我在 AS 启动的 catalina.bat 文件中添加了以下位,以设置用于 Catalina 的编码:

-Dfile.encoding=UTF-8

现在我仍然可以保存特殊字符,如 ŰÁÉÚŐÖÜÓ,并且它们会像这样插入到数据库中,但是如果我在某个页面上重新加载数据,编码就会一团糟。类似于:ĂĂĂĂĂĂĂĂ

所以我仍然可以插入,但是在添加该行后我无法以正确的格式获取数据。有谁知道如何解决这个问题?或者什么可能导致它?我需要此设置,因为我实际上是在尝试在另一个环境中重现错误。

最佳答案

嗯,我有点明白问题出在哪里了。我责怪 oracle 驱动程序没有正确进行转换。然而,servlet 以错误的格式开始传输值,并以更糟糕的方式显示它们。因此,实际的简单解决方案是使用引用常用编码过滤器的通用过滤器扩展 was xml,该过滤器也存在于 tomcat 文件夹的 eaxmple webapps 中。我将其添加到 web.xml 中:

<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

一切都好起来了!从现在开始,这几乎是我添加到 web.xml 的第一件事。无论如何,非常感谢,干杯!

关于java - Oracle 驱动程序行为不端 Tomcat 6.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15949465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com