1

Unicode エンコーディング スキームを使用してエンコードされたテキストの生のバイト ストリームで、印刷できない ASCII 文字を探すときに、いくつかのショートカットを使用しようとしています。

たとえば、UTF-8エンコーディングでは、文字が複数のバイトを使用してエンコードされている場合、各バイトは常に=> 128になるため、バイトの値が32未満の場合、それは印刷できないASCII文字であることがわかります。UTF-16 と UTF-32 で同様のショートカットを使用できるかどうかを知りたいです。

UTF-16 と UTF-32 がエンコードされた ASCII 文字にゼロ パディングを使用することは知っていますが、非 ASCII 範囲文字の個々のバイトが 32 未満になる可能性があるかどうかを知りたいと思っていました。

基本的に、ストリームを文字にデコードすることなく、32未満のASCII文字のバイトを確実にスキャンできるかどうかを知りたいです(UTF-8でできるように)。

参考までに、テキストを行にインデックス化するための改行 (10、13) を探しており、文字にデコードせずにこれを行う最適な方法を探しています。

4

1 に答える 1

3

UTF-32 は、簡単で飾り気のないエンコーディングです。各文字は、32 ビットのコードポイントで直接表されます。非 ASCII 文字の途中で ASCII バイトが検出されないという UTF-8 のような規定はありません。、、、または形式のコードポイントには、\uxxxxxx10UTF -32 として「エンコード」されるとバイトが含まれます。\uxxxx10xx\uxx10xxxx\u10xxxxxx0x10

ただし、すべての文字は常に完全な 32 ビットであるため、ストリーム4 バイトのチャンクで読み取り、4 バイトの値0x00000010または0x00000013.

于 2013-01-24T22:26:20.890 に答える