【发布时间】:2016-08-23 06:24:02
【问题描述】:
我有以下代码,它的行为非常奇怪。
当我执行以下操作时,utf-8 很好地转换为 unicode。
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"
我得到了以下相同的字符串,它没有被转换成 unicode。
<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 的输入转换为 unicode 字符。
请帮忙。
谢谢。
【问题讨论】:
标签: python unicode encoding utf-8