Python打印到终端shell unicode
我正在用python解析一个很长的波斯语字符串,并以如下方式打开它:Python打印到终端shell unicode,python,encoding,utf-8,codec,mojibake,Python,Encoding,Utf 8,Codec,Mojibake,我正在用python解析一个很长的波斯语字符串,并以如下方式打开它: fp = codecs.open(f+i, 'r', encoding='utf-8').readlines() 和使用 print(line[1]) 但它不是打印出可读的波斯语,而是在终端中输出类似的内容 اط٠اعâرسا٠在网页上,它可以很好地输出它 有什么问题吗?谢谢你你在这里有一个好机会。第一个字符是代码点,编码为UTF-8,但随后解释为: 您的SSH shell在某个地方配置错误;
fp = codecs.open(f+i, 'r', encoding='utf-8').readlines()
和使用
print(line[1])
但它不是打印出可读的波斯语,而是在终端中输出类似的内容
اطÙ
اعâرساÙ
在网页上,它可以很好地输出它
有什么问题吗?谢谢你你在这里有一个好机会。第一个字符是代码点,编码为UTF-8,但随后解释为:
您的SSH shell在某个地方配置错误;远程shell认为您正在使用UTF-8,而本地打印的UTF-8字节正在打印,就好像它们是CP1252字节一样
我能解释的是:
->ا
->Ø·
->ر
->س
Ù
字符是U+640到U+0660范围内任何事物的Mojibake起点;我们在这里看不到这两次出现的第二个字节。字符也是如此;第二个字节无法在CP1252中打印,因此再次丢失
总的来说,我可以恢复的是:
>>> print u'اط - اع - رسا'.encode('cp1252').decode('utf8')
اط - اع - رسا
你在这里有一个好主意。第一个字符是代码点,编码为UTF-8,但随后解释为:
您的SSH shell在某个地方配置错误;远程shell认为您正在使用UTF-8,而本地打印的UTF-8字节正在打印,就好像它们是CP1252字节一样
我能解释的是:
ا
->
Ø·
->
ر
->
س
->
Ù
字符是U+640到U+0660范围内任何事物的Mojibake起点;我们在这里看不到这两次出现的第二个字节。字符也是如此;第二个字节无法在CP1252中打印,因此再次丢失
总的来说,我可以恢复的是:
>>> print u'اط - اع - رسا'.encode('cp1252').decode('utf8')
اط - اع - رسا
您使用的是什么终端?导入系统的功能是什么;系统标准编码
show?这对您的控制台/终端正确吗?@merlin2011我使用的是SSH安全外壳这看起来像是UTF-8的ISO-8851-1 Mojibake。@MartijnPieters我以前在python脚本中使用过它,它工作正常,所以我不确定为什么这次在同一个终端上它不工作。您使用的是什么终端?import sys;系统标准编码
show?这对您的控制台/终端正确吗?@merlin2011我使用的是SSH安全外壳这看起来像是UTF-8的ISO-8851-1 Mojibake。@MartijnPieters我以前在python脚本中使用过它,它工作正常,所以我不确定为什么这次使用相同的终端它对我不起作用谢谢,如果你不让我知道,我是不会知道的。我必须对此进行更多调查,然后再与你联系。也许用我的壳做些东西……会让你知道的@user3325170:是CP1252,Windows拉丁语-1近似代码页谢谢,如果你不让我知道,我就不会知道。我必须对此进行更多调查,然后再与你联系。也许用我的壳做些东西……会让你知道的@user3325170:它是CP1252,Windows拉丁语-1近似代码页