Python 将编码错误的字符串转换为utf8
我用错误的编码测试了这个字符串 该文本为:tεστ-Test,使用Western Windows-1252重新打开,并使用utf-8编码保存。 所以现在每当我在我的编辑器Sublime中打开这个文件时,我都需要用编码utf-8重新打开以读取值 我需要使用python转换文本。 我正在尝试:Python 将编码错误的字符串转换为utf8,python,Python,我用错误的编码测试了这个字符串 该文本为:tεστ-Test,使用Western Windows-1252重新打开,并使用utf-8编码保存。 所以现在每当我在我的编辑器Sublime中打开这个文件时,我都需要用编码utf-8重新打开以读取值 我需要使用python转换文本。 我正在尝试: import codecs my_text = 'Τεστ - Test' try1 = bytes(my_text, 'utf-8') try2 = codecs.escape_decode(my
import codecs
my_text = 'Τεστ - Test'
try1 = bytes(my_text, 'utf-8')
try2 = codecs.escape_decode(my_text)[0]
try3 = str(my_text.encode('unicode_escape').decode('windows-1252'))
//try1 : b'\xc3\x8e\xc2\xa4\xc3\x8e\xc2\xb5\xc3\x8f\xc6\x92\xc3\x8f\xe2\x80\x9e - Test'
//try2 : b'\xc3\x8e\xc2\xa4\xc3\x8e\xc2\xb5\xc3\x8f\xc6\x92\xc3\x8f\xe2\x80\x9e - Test'
//try3 : \xce\xa4\xce\xb5\xcf\u0192\xcf\u201e - Test
我试图转换这个编码字符串,以便使用decode'utf-8'获得正确的值
try1 = try1.decode('utf-8')
try2 = try2.decode('utf-8')
但是我得到了再次测试的结果。以下内容在Python 3中对我有用:
s = "Τεστ - Test"
assert s.encode("cp1252").decode("utf-8") == "Τεστ - Test"
因此,第一次调用encode时,使用cp1252将其编码为字节字符串,然后使用utf-8对该字节列表进行解码,得到预期的unicode字符串。以下内容适用于我在Python 3中的工作:
s = "Τεστ - Test"
assert s.encode("cp1252").decode("utf-8") == "Τεστ - Test"
因此,第一次调用encode时,使用cp1252将其编码为字节字符串,然后使用utf-8对该字节列表进行解码,得到预期的unicode字符串。您的文本最初是utf-8,然后以字节形式打开并解码为cp1252,然后重新编码为utf-8,因此,如果我们用python编写它,基本上是:
>>> "Τεστ - Test".encode('utf-8').decode('cp1252')
'Τεστ - Test'
所以逆运算是:
>>> 'Τεστ - Test'.encode('cp1252').decode('utf-8')
'Τεστ - Test'
您的文本最初是utf-8,然后以字节形式打开并解码,就像它是cp1252一样,然后重新编码为utf-8,因此基本上如果我们用python编写它,它将是:
>>> "Τεστ - Test".encode('utf-8').decode('cp1252')
'Τεστ - Test'
所以逆运算是:
>>> 'Τεστ - Test'.encode('cp1252').decode('utf-8')
'Τεστ - Test'