ファイルからバイトを読み取り、それらをバイト配列に格納するこのRandomAccessFileオブジェクトがあります。ヘブライ文字列を作成する必要があります。デスクトップのJAVAでデバッグすると、16進数で4バイトの場合、たとえば次のようになります。
data[0]=E7
data[1]=FA
data[2]=E5
data[3]=EC
(つまり、それぞれ1バイトの長さで意味があります)
それらから文字列strを作成すると、次のようになります。
str[0]=\u05D7
str[1]=\u05EA
str[2]=\u05D5
str[3]=\u05DC
これは正しいユニコード化されたヘブライ文字であり、文字列は問題なく出力されます。それらはそれぞれ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);