2012-02-10 16 views
2

一部のUTF8シンボルにはバイト0x0D 0x0Aが含まれている可能性はありますか?はいの場合、そのような記号は何ですか?
(私が解決しようとしているそのタスクは非常に最初からではなく、その後、ある時点からテキストUTF8ファイルを読んでいる) r n UTF8文字の一部として?

+0

データ内の0x0D 0x0Aとして改行を表す必要はないことに注意してください。異なるシステムでは、行終端規則が異なります。しかし、0x0D 0x0Aが使用され、*データがUTF-8エンコーディングであることが分かっている場合、データの次の改行に到達するために0x0D 0x0Aを見つけるために一連のバイトをスキャンすることは安全です。 –

+0

0x0Dまたは0x0Aの後に結合文字が続くとどうなりますか?無意味で珍しいことですが、それは可能な状況です。ここで複数のコードポイントが1つになるはずです。 –

答えて

5

いいえ、マルチバイトエンコードされたコードポイントのすべてのバイトは常に最上位ビットがセットされています。

UTF-8ストリームの0〜127の値を持つバイトは、ASCIIに一意にマップされます。

1

いいえ、範囲0〜127のASCIIの各文字は、UTF-8テキストでは「現状のまま」表されます。マルチバイト文字の各バイトには8ビットが設定されています。これはUTF-8のadventagesの1つです。

1

単一のUnicodeコードポイントU + 0D0Aは、UTF-8で3バイトの0xE0 0xB4 0x8Aとして表されます。 2つのUnicodeコードポイントU + 000D U + 000Aは、UTF-8で2バイトの0x0D 0x0Aとして表されます。

関連する問題