gpt4 book ai didi

java - 使用 java jdbc 从 Oracle 中的 Clob 字段获取错误字符

转载 作者:行者123 更新时间:2023-12-02 02:17:09 25 4
gpt4 key购买 nike

我尝试使用 jdbc java 从 Oracle 表中获取 clob 字段并将其写入文件,但某些字符写错了。

public static void main(String[] args) {

Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
InputStreamReader st = null;
Writer wr = null;

try {

conn = DataSource.getConnection("URL", "USER", "PASS");

ps = conn.prepareStatement("select fieldClob from tableTest");
rs = ps.executeQuery();

while(rs.next()) {

oracle.sql.CLOB clob = (CLOB)rs.getObject("fieldClob");

st = new InputStreamReader(clob.getAsciiStream(),Charset.forName("UTF-8"));
int intValueOfChar;

StringBuilder buffer = new StringBuilder();
while ((intValueOfChar = st.read()) != -1) {
buffer.append((char) intValueOfChar);
}

wr = new FileWriter("C:/test/file.xml");
wr.write(buffer.toString());

}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
CloseObject.closeObject(rs);
CloseObject.closeObject(ps);
CloseObject.closeObject(conn);

}

}

}

我想要得到“ü”,但得到“[xBF]”或者得到“?”正在尝试 UTF-8 字符集。

最佳答案

评论中的链接解决了问题,我更改了Writer并添加了对UTF8的支持:

Writer fstream = new OutputStreamWriter(new FileOutputStream(mergedFile), StandardCharsets.UTF_8);

感谢用户7294900。

关于java - 使用 java jdbc 从 Oracle 中的 Clob 字段获取错误字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57295389/

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