无法正确显示文件中的unicode字符

时间:2016-07-01 14:09:22

标签: file python-3.x

我正在编写一个脚本,该脚本应该对来自多个文件的单词进行操作,这些文件具有something\u0142somethingelse形式的unicode字符。

我使用python 3所以我想在读取行\u0142之后应该用'ł'字符替换,但它不是。我在控制台中收到"something\u0142somethingelse"

手动复制"坏"从控制台输出并将其粘贴到:print("something\u0142somethingelse")它显示正确。

脚本有问题的部分:

list_of_files = ['test/stack.txt']

for file in list_of_files:
    with open(file,'r') as fp:
        for line in fp:
            print(line)
            print("something\u0142somethingelse")

stack.txt:

something\u0142somethingelse

输出:

something\u0142somethingelse
somethingłsomethingelse

我在打开此文件时尝试使用utf-8编码,而且我真的没有想法...

1 个答案:

答案 0 :(得分:0)

我认为你可以用ast.literal_eval做你想做的事。这使用与Python解释器相同的语法来理解文字:如eval但更安全。所以这有用,例如:

a = 'something\\u0142somethingelse'

import ast

b = ast.literal_eval('"' + a + '"')
print '"' + a + '"'
print b

输出应为:

"something\u0142somethingelse"
somethingłsomethingelse