0

Python 2.7.x のドキュメントによると:

コンストラクターにはunicode()署名がありますunicode(string[, encoding, errors])。その引数はすべて 8 ビット文字列でなければなりません。最初の引数は、指定されたエンコーディングを使用して Unicode に変換されます。encoding 引数を省略すると、ASCII エンコーディングが変換に使用されるため、127 を超える文字はエラーとして扱われます。

   >>> unicode('abcdef' + chr(255))    
   Traceback (most recent call last):
   ...
   UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 6:
   ordinal not in range(128)

では、なぜこれは日本語の文字で機能するのでしょうか?:

TestStr = "サーバ移設"
print TestStr
サーバ移設

そして、なぜこれも機能するのですか?:

TestStr = unicode("サーバ移設")
print TestStr
サーバ移設

日本語の文字は 8 ビット文字列の範囲内にないため、Unicode デコード エラーが発生することが予想されます。

4

0 に答える 0