如何正确阅读和编码通过烧瓶发送的文本?
How to correctly read and encode a text sent via flask?
我写了一个简单的API读写文件。最小版本如下:
import flask
class Web:
def __init__(self):
self.app = flask.Flask('web')
self.app.add_url_rule('/read/<filename>', 'read', self.read)
self.app.run(host="0.0.0.0", port=6543)
def read(self, filename: str):
return open(filename).read()
Web()
考虑以下文件(将要读取的文件)。在Windows记事本中保存为UTF-8
:
ascii
éàçèïê
尝试通过 curl 下载时:
PS > curl http://localhost:6543/read/c5f89f95ef49492c82bdbcc133a5c567
ascii
éà çèïê
我试图将它重定向到一个文件,它也是一团糟:
看起来链条中的某处“使用 open()
读取文件”→“return 通过烧瓶”我在 encoding/decoding Unicode 魔法中犯了一个错误。
尝试使用这个结构:
open(filename, encoding="utf-8")
我写了一个简单的API读写文件。最小版本如下:
import flask
class Web:
def __init__(self):
self.app = flask.Flask('web')
self.app.add_url_rule('/read/<filename>', 'read', self.read)
self.app.run(host="0.0.0.0", port=6543)
def read(self, filename: str):
return open(filename).read()
Web()
考虑以下文件(将要读取的文件)。在Windows记事本中保存为UTF-8
:
ascii
éàçèïê
尝试通过 curl 下载时:
PS > curl http://localhost:6543/read/c5f89f95ef49492c82bdbcc133a5c567
ascii
éà çèïê
我试图将它重定向到一个文件,它也是一团糟:
看起来链条中的某处“使用 open()
读取文件”→“return 通过烧瓶”我在 encoding/decoding Unicode 魔法中犯了一个错误。
尝试使用这个结构:
open(filename, encoding="utf-8")