-1

UTF-32とUTF-16の間の変換をテスト/解除するためのテストケースが必要です。

UTF-8およびUTF-16の場合、私は通常、「中国の骨」テストを使用します:0xE9 0xAA 0xA8(UTF8)および0x9AA8(UTF16)。

UTF-16およびUTF-32の不十分に記述された実装を破るはずの否定的なテストケースを持っている人はいますか?理想的には、テストでは少なくとも2つのUTF-32値を使用する必要があります。

ジェフ

4

1 に答える 1

1

あなたが何を意味するのかわからない、ここにいくつかあります:

UTF-16

  • 通常のユニットを使用したリードサロゲートまたは次の別のリードサロゲート\xD8\x00\x00\x00または\xD8\x00\xDB\xFF
  • その前にリードサロゲートのないトレイルサロゲート\x00\x61\xDC\00
  • リードポジションのトレイルサロゲート\xDF\xFF\xDB\xFF
  • 最後のユニットとして代理をリード\xD8\x01<EOF>
  • 最後のユニットとしてサロゲートをリードし、その後にハーフトレイルサロゲートが続きます。このバグはPython2.7.3に存在します。'\xD8\x00\xDC'.decode('utf-16be')

UTF-32

  • value < 0value > 0x10FFFFまたはの場合、単位値はtrueを返します0xD800 <= value && value <= 0xDFFF
于 2013-03-24T17:34:18.407 に答える