Flask 自行編解碼

2021-08-10 10:44 更新

如果你的工作環(huán)境是一個(gè)不真正基于 Unicode 的文件系統(tǒng)之類的話,你需要確保使用 Unicode 接口妥善地解碼。比如,當(dāng)你想要在文件系統(tǒng)中加載一個(gè)文件,并嵌入到 Jinja2 模板時(shí), 你需要按照文件的編碼來解碼。這里有一個(gè)老問題就是文本文件不指定有效的編碼, 所以限定你在文本文件中使用 UTF-8 也是在幫自己的忙。

無論如何,以 Unicode 加載這樣文件,你可以使用內(nèi)置的 str.decode() 方法:

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

從 Unicode 轉(zhuǎn)換成指定的字符集,你可以使用 unicode.encode() 方法:

def write_file(filename, contents, charset='utf-8'):
    with open(filename, 'w') as f:
        f.write(contents.encode(charset))
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號