私は非常に奇妙な動作をしている次のコードを持っています。Python sys.argv utf-8 unicodeが動作しない
私が次のことをすると、utf-8はユニコードにうまく変換されました。
print u'\xE1\x80\x96\xE1\x80\xBB\xE1\x80\xB1\xE1\x80\xAC\xE1\x80\xBA\xE1\x80\x9B\xE1\x80\x8A\xE1\x80\xBA'.encode('raw_unicode_escape')
これは問題なく動作します。しかし、sys.argvからutf-8文字列を取得しても、それは動作しません。
import sys
if __name__ == "__main__":
args = sys.argv
input_string = args[1]
if type(input_string) is not unicode:
input_string = unicode(input_string, "utf-8")
print type(input_string)
print input_string
私は次、
python test_print.py "\xE1\x80\x96\xE1\x80\xBB\xE1\x80\xB1\xE1\x80\xAC\xE1\x80\xBA\xE1\x80\x9B\xE1\x80\x8A\xE1\x80\xBA"
私は次のように同じ文字列を得たように実行すると、それはユニコードに変換されません。
<type 'unicode'>
\xE1\x80\x96\xE1\x80\xBB\xE1\x80\xB1\xE1\x80\xAC\xE1\x80\xBA\xE1\x80\x9B\xE1\x80\x8A\xE1\x80\xBA
入力をsys.argvからユニコード文字に変換する必要があります。
助けてください。
ありがとうございました。
これはさらに優れています。ありがとう。 – moeseth