我有这个 RandomAccessFile 对象,它从文件中读取字节并将它们存储到字节数组中。他们应该组成一个希伯来字母串。如果我在桌面上用 JAVA 调试它们,那么我得到 4 个十六进制字节,例如:
data[0]=E7
data[1]=FA
data[2]=E5
data[3]=EC
(所以,每个 1 字节长度是有意义的)
当我从它们构造一个 String str 时,我得到:
str[0]=\u05D7
str[1]=\u05EA
str[2]=\u05D5
str[3]=\u05DC
这是正确的 unicoded 希伯来字母,字符串打印出来就好了。它们每个长度是 2 个字节吗?
当我在 Android 设备上进行相同的调试时,我得到相同的“数据”字节数组,但“str”字符串是 4 个相同的字节,读出为 4 个问号。
我的问题是:java 怎么能占用 1 个字节并“知道”它是希伯来语,我怎么能在 Android 中做同样的事情?
谢谢
代码:
iDefLength=4;
RandomAccessFile R = new RandomAccessFile(file, "r");
R.read(bDefinition, 0, iDefLength);
this.sDef = new String(bDefinition);