Python,如何打印日文、韩文、中文字符串

Goi*_*Way 5 python string unicode python-2.7

在Python中,对于日语、中文和韩语,Python无法打印正确的字符串,例如hello日语、韩语和中文的字符串是:

\n\n
\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf\n\xec\x95\x88\xeb\x85\x95\xed\x95\x98\xec\x84\xb8\xec\x9a\x94\n\xe4\xbd\xa0\xe5\xa5\xbd\n
Run Code Online (Sandbox Code Playgroud)\n\n

并打印这些字符串:

\n\n
In [1]: f = open('test.txt')\n\nIn [2]: for _line in f.readlines():\n   ...:     print(_line)\n   ...:     \n\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf\n\n\xec\x95\x88\xeb\x85\x95\xed\x95\x98\xec\x84\xb8\xec\x9a\x94\n\n\xe4\xbd\xa0\xe5\xa5\xbd\n\n\nIn [3]: f = open('test.txt')\n\nIn [4]: print(f.readlines())\n[ '\\xe3\\x81\\x93\\xe3\\x82\\x93\\xe3\\x81\\xab\\xe3\\x81\\xa1\\xe3\\x81\\xaf\\n', '\\xec\\x95\\x88\\xeb\\x85\\x95\\xed\\x95\\x98\\xec\\x84\\xb8\\xec\\x9a\\x94\\n', '\\xe4\\xbd\\xa0\\xe5\\xa5\\xbd\\n']\n\nIn [5]: a = '\xe4\xbd\xa0\xe5\xa5\xbd'\n\nIn [6]: a\nOut[6]: '\\xe4\\xbd\\xa0\\xe5\\xa5\\xbd'\n
Run Code Online (Sandbox Code Playgroud)\n\n

我的Python版本是2.7.11,操作系统是Ubuntu 14.04

\n\n

如何处理这些'\\xe4\\xbd\\xa0\\xe5\\xa5\\xbd\\n'字符串。

\n\n

谢谢!

\n

sam*_*ami 3

首先你需要将文本读取为unicode

import codecs
f = codecs.open('test.txt','r','utf-8')
Run Code Online (Sandbox Code Playgroud)

第二

当你打印时你应该像这样编码

unicodeText.encode('utf-8')
Run Code Online (Sandbox Code Playgroud)

第三

你应该确保你的控制台支持 unicode 显示

使用

print sys.getdefaultencoding()
Run Code Online (Sandbox Code Playgroud)

如果它不尝试

reload(sys)
sys.setdefaultencoding('utf-8')
Run Code Online (Sandbox Code Playgroud)