我在使用BeautifulSoup时遇到了编码问题。在我的开发环境中一切正常(Ubuntu,Python 3.4,Django开发服务器)。但是在生产服务器上(Ubuntu,Python 3.4,Django和BeautifulSoup的相同版本 - 唯一的区别是使用gunicorn和Nginx),我会得到以下错误:
'ascii' codec can't decode byte 0xc3 in position 301: ordinal not in range(128)
追踪反馈显示问题出在语句"BeautifulSoup(data)"中。
data = open(os.path.join(BASE_DIR, 'data/file.xml'))
data = BeautifulSoup(data)
似乎BeautifulSoup试图使用ASCII,但文件是UTF-8编码的。我尝试了在stackoverflow上找到的不同方法,但大多数都依赖于Python 2 - 而我使用Python 3。我还尝试了类似这样的方法:
data = BeautifulSoup(str(data.read()))
但是这并不起作用。 非常感谢您的任何帮助。