我连接到具有 NLS_CHARACTERSET (WE8ISO8859P1) 的 Oracle 数据库,据我所知,该数据库不支持存储阿拉伯文本。
但是 Toad for Oracle 可以从此数据库读取阿拉伯语:
但是,我无法使用 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[]{}),但没有成功显示阿拉伯字符。
有什么帮助吗? ,谢谢。
最佳答案
这可能是由多种原因引起的:
检查数据库中的列类型,它应该是
NVARCHAR
而不是VARCHAR
(注意单词开头的 "N")尝试将
charset=utf8
放入连接字符串使用 UTF-8 编码将
byte[]
转换为字符串String arabicText = new String(byteArray, "UTF-8");
关于java - 使用java从以WE8ISO8859P1编码的Oracle数据库读取阿拉伯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31958556/