【发布时间】:2021-05-31 08:46:03
【问题描述】:
我编写了一个简单的 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() 读取文件”→“通过烧瓶返回”链中的某处我在编码/解码 Unicode 魔法时出错了。
【问题讨论】:
-
尝试
curl -D并检查内容类型标头中设置的字符集。
标签: python python-3.x flask unicode python-unicode