尽管我声明编码= UTF-8,为什么python打印ascii而不是unicode?

时间:2013-08-19 08:10:43

标签: python utf-8

# coding=UTF-8
with open('/home/marius/dev/python/navn/list.txt') as f:
    lines = f.read().splitlines()
    print lines

文件/home/marius/dev/python/navn/list.txt包含一些带有一些特殊字符的字符串列表,例如æ,ø,å,Æ,Ø,Å。在终端中,这些都被渲染为十六进制。我希望这些呈现为UTF-8。这是怎么做到的?

1 个答案:

答案 0 :(得分:4)

通过将数据从UTF-8解码为Unicode值,然后让Python将这些值自动编码回终端编码:

with open('/home/marius/dev/python/navn/list.txt') as f:
    for line in f:
        print line.decode('utf8')

您可以使用io.open()并在阅读时为您解码数据:

import io

with io.open('/home/marius/dev/python/navn/list.txt', encoding='utf8') as f:
    for line in f:
        print line