小编Rag*_*van的帖子

使用 Java-JDBC 从 Oracle 数据库读取数据时的字符编码

我们将数据存储在 oracle 10g db 中,其中包含法语字符集。要求是使用Java读取数据并生成输出文件。

我通过 SQL*plus 检查了 Oracle db 中数据的有效性,看起来不错。

从窗口:

set NLS_LANG=AMERICAN.AL32UTF8
sqlplus scott/tiger
sql>  select billing_address from MYTABLE t where ADDRESS_ID=1 ;
billing_address
-----------------------
MONTRÉAL QUÉ
Run Code Online (Sandbox Code Playgroud)

现在,当我从 Java 中读取表以生成输出文件时,字符全是乱码,并且我看到问号代替了 É。

当我尝试在 Java 中读/写数据时,是否需要设置任何特殊的编码。

我正在使用ojdbc14.jar并将编码设置为 UTF-8。


更新:这是我的 java 代码片段。

        Charset cs1 = Charset.forName("UTF-8");
        PreparedStatement pStmt = conn.prepareStatement("select * from talbe where address_id=1");
        ResultSet rs = pStmt.executeQuery();
        Writer w = null;
        FileOutputStream fos = null;
        if(rs.next()) {

            String billingaddress = rs.getString("BILLING_ADDRESS");

            fos = new FileOutputStream(new File("myout.dat")); …
Run Code Online (Sandbox Code Playgroud)

java encoding jdbc utf-8 oracle10g

3
推荐指数
1
解决办法
3万
查看次数

标签 统计

encoding ×1

java ×1

jdbc ×1

oracle10g ×1

utf-8 ×1