我连接到具有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类中,我尝试使用上面提到的字节创建新的String(new char [] {}),没有运气显示阿拉伯字符。
有任何帮助吗?谢谢你。
答案 0 :(得分:0)
这可能是由很多事情造成的:
检查数据库中的列类型NVARCHAR
而不是VARCHAR
(注意单词开头的" N" )
尝试将charset=utf8
放入连接字符串
使用UTF-8编码将byte[]
转换为字符串,如下所示
String arabicText = new String(byteArray, "UTF-8");