我在Ubuntu(Jessie)上运行Python3。并重构一些最初在Python2.7中编写的代码。
我有一个UTF-8 Unicode文本文件......
$ file /home/(smip)/hg19.json
/home/(smip)/hg19.json: UTF-8 Unicode text
在旧代码中......
#!/usr/bin/env python3
# -*- coding: utf-8
(...snip...)
with open(filename) as fh:
return json.load(fh)
在尝试打开文件时导致错误...
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 510: ordinal not in range(128)
更改代码以指定utf-8,如此...
with open(filename, "r", encoding="utf-8") as fh:
return json.load(fh)
...解决了这个错误
我的问题是:
答案 0 :(得分:1)
coding: utf-8
评论是源代码文件的encoding declaration。 Python 3的默认值是UTF-8。如果您想让用户决定编码,或者在打开数据时将其明确设置为LC_ALL=en_US.utf-8
,则可以在外部设置utf-8
。