gpt4 book ai didi

java - 使用java从以WE8ISO8859P1编码的Oracle数据库读取阿拉伯文本

转载 作者:太空宇宙 更新时间:2023-11-04 13:33:15 25 4
gpt4 key购买 nike

我连接到具有 NLS_CHARACTERSET (WE8ISO8859P1) 的 Oracle 数据库,据我所知,该数据库不支持存储阿拉伯文本。

但是 Toad for Oracle 可以从此数据库读取阿拉伯语:

Toad:

但是,我无法使用 java 代码读取此内容。

即使我尝试使用 UTL_RAW.CAST_TO_RAW 以字节为单位获取它们的行

结果为“218,227,237,225,228,199,32,199,225,218,210,237,210,161,225,222,207,32,199,211,202,229,225,223,202,32,32,56,48,37,32 ,227,228,32,230,205,207,199,202,32,221,225,237,223,211,32,32,32"

在一个测试java类中,我尝试使用上述字节创建new String(new char[]{}),但没有成功显示阿拉伯字符。

有什么帮助吗? ,谢谢。

最佳答案

这可能是由多种原因引起的:

  1. 检查数据库中的列类型,它应该是 NVARCHAR 而不是 VARCHAR(注意单词开头的 "N")

  2. 尝试将 charset=utf8 放入连接字符串

  3. 使用 UTF-8 编码将 byte[] 转换为字符串

    String arabicText = new String(byteArray, "UTF-8");

关于java - 使用java从以WE8ISO8859P1编码的Oracle数据库读取阿拉伯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31958556/

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