Python Flask.txt文件编码

Python Flask.txt文件编码,python,encoding,flask,Python,Encoding,Flask,我正在使用带烧瓶应用程序的Jinja2模板。 当从上传的.txt文件中读取内容时,我得到的结果如下 '\xff\xfeA\x00e\x00r\x00 \x00L\x00i\x00n\x00g\x00u\x00s\x00 \x00h\x00a ...' 尽管我可以在调试控制台中看到正确的文件内容 我的代码是 @main_app.route('/upload', methods=['POST']) def upload(): file = request.files['file']

我正在使用带烧瓶应用程序的Jinja2模板。 当从上传的.txt文件中读取内容时,我得到的结果如下

'\xff\xfeA\x00e\x00r\x00 \x00L\x00i\x00n\x00g\x00u\x00s\x00 \x00h\x00a ...'
尽管我可以在调试控制台中看到正确的文件内容

我的代码是

@main_app.route('/upload', methods=['POST'])
def upload():
    file = request.files['file']
    if file:
        filedata = file.read()

    return render_template('page.html',
        components = [{'filecontents': filedata}]
    )
我尝试了其他问题的解决方案,比如建议使用.encode和.decode,但都不起作用

有什么问题吗?

试着把

import sys
reload(sys).setdefaultencoding("utf-8")
在代码的开头。

复制自:

将文件编码用作字符集,例如:

我只是猜测您的文件是拉丁文编码的。

不要摆弄setdefaultencoding
def read_file(filename, charset='utf-8'):
    with open(filename, 'r') as f:
        return f.read().decode(charset)
test_string = '\xff\xfeA\x00e\x00r\x00\x00L\x00i\x00n\x00g\x00u\x00s\x00 \x00h\x00a ...'
print test_string.decode('latin')
>>> ÿþA