簡體   English   中英

Python Flask .txt文件編碼

[英]Python Flask .txt file 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']
    if file:
        filedata = file.read()

    return render_template('page.html',
        components = [{'filecontents': filedata}]
    )

我嘗試了其他問題的解決方案,例如建議使用.encode()和.decode(),但它們不起作用。

可能是什么問題呢?

文檔中復制:

def read_file(filename, charset='utf-8'):
    with open(filename, 'r') as f:
        return f.read().decode(charset)

使用文件編碼作為charset ,例如:

test_string = '\xff\xfeA\x00e\x00r\x00\x00L\x00i\x00n\x00g\x00u\x00s\x00 \x00h\x00a ...'
print test_string.decode('latin')
>>> ÿþA

我只是在猜測您的文件是latin編碼。

試穿

import sys
reload(sys).setdefaultencoding("utf-8")

在代碼的開頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM