0

我正在从 oracle11g 检索数据并在 IE8 和 IE9 浏览器上显示数据,但无法显示某些特殊字符(例如 é)

在我的网页中,我明确声明了“UTF-8”编码。

对于我的 tomcat 网络服务器,server.xml

<Connector port="8080" protocol="HTTP/1.1" 
           connectionTimeout="20000" 
           redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true"/>

我在 stackflow 中阅读了其他一些问题,他们提到还要确保数据库连接也使用“UTF-8”。

  <Resource name="jdbc/AppDB" 
        auth="Container"
        type="javax.sql.DataSource"
        maxActive="20" maxIdle="10" maxWait="10000"
        username="foo"
        password="bar"
        driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/      ID_development?useEncoding=true&amp;characterEncoding=UTF-8"
    />

给出的解决方案是针对mysql的。 如果我使用 oracleDriver,我该如何设置编码?

<Resource name="jdbc/AppDB"
       auth="Container"
       type="javax.sql.DataSource"
       driverClassName="oracle.jdbc.OracleDriver"
       url="jdbc:oracle:thin:@127.0.0.1:1521:ora11"
       username="foo"
       password="bar"
       maxActive="20"
       maxIdle="1000"
       maxWait="-1" />
4

1 回答 1

1

请查看此答案。尽管它专注于 SQL Developer,但它包含有关调整 JDBC 驱动程序的信息,并指出了如何在 Oracle 中正确处理 unicode 字符类型。

更新
在客户端显示字符的问题可能是由NLS_LANG数据库客户端(在您的情况下为 Tomcat)上的错误设置引起的。对于从 java 语言环境设置派生的瘦 JDBC 驱动程序 NLS_LANG 值。
对于可能的变体,您可以查看此问题的答案并查看Oracle 文档
如果问题的真正根源在于 Oracle 数据库连接的字符集,那么只有两个可能的端点需要检查:NLS_LANGoracle.jdbc.defaultNChar. 因此,您需要检查两者是否正确设置以弄清楚发生了什么。

于 2013-08-27T11:39:10.830 回答