0

UTF-8 データを含むファイルがあります。このファイルには、BOM (バイト オーダー マーク) も、各ユニコード ワード/行のプレフィックスとしての長さ/サイズ情報もありません。

指定されたオフセットと長さから、バイト (はいバイト!) を読み取りたいです。API に、シーク、バイトの読み取り、オフセットからのバイトの読み取りなどの機能があれば、非常に役立ちます。

コンテンツの例 - 「100° 情報」、このコンテンツの長さは 9 です。9 バイトの読み取りを要求すると、すべてを読み取る必要があります。API は Unicode 文字を 2 文字として扱っているようです。

内容を正しく読むには?同じためにどの API を使用しますか?

4

3 に答える 3

0

文字とバイトを混同しているように感じます。テキスト100° Infoは 9 文字ですが、度記号が 2 バイトとして格納されるため、10 バイトになります。o9 バイトを読み取ると、 fromを見逃すことになりますがInfo、これは 1 バイト文字であるため、文字列として解析されます。

于 2013-06-20T18:39:54.210 に答える
0

もちろん、コンテンツを文字列に読み取ってから、 String.getBytes("UTF8") を使用して特定の文字列のバイトを取得できます。これは、概説したケースで 9 バイトすべてを返します。

于 2013-06-20T18:43:15.120 に答える