0

InputStreamReader を使用してファイルから文字を読み取り、それらを StringBuilder に追加するのは Java の一般的なパターンです。それを行う明白な方法は次のようなものです:

int c = reader.read();
sb.append((char)c);

ただし、ファイルに (違いがある場合は UTF-8 エンコーディングを指定したと仮定して) 16 ビットに収まらない文字 (厳密にはコード ポイント) が含まれているとします。リーダーは、これを 16 ビット文字のペアではなく、単一の 32 ビット コード ポイントとして返しますか?

もしそうなら、上記の最後の行は実際には次のように読むべきです:

sb.appendCodePoint(c);

2 つのオプションを区別する既知のテスト ケース (一連の UTF-8 バイト) はありますか?

4

1 に答える 1