python - 如何正确读取和编码通过烧瓶发送的文本?
问题描述
我编写了一个简单的 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()
考虑以下文件(将被读取的文件)。它保存UTF-8
在 Windows 记事本中:
ascii
éàçèïê
尝试通过 curl 下载它时:
PS > curl http://localhost:6543/read/c5f89f95ef49492c82bdbcc133a5c567
ascii
éà çèïê
我试图将它重定向到一个文件,它也是一团糟:
看起来在链“读取文件open()
”→“通过烧瓶返回”的某个地方我在编码/解码 Unicode 魔术时犯了一个错误。
解决方案
尝试使用这种结构:
open(filename, encoding="utf-8")
推荐阅读
- react-select - React-Select 返回值而不是整个选项对象
- python - 我无法安装此存储库
- python - AttributeError:“str”对象没有属性“float”
- c# - 在 layout.cshtml 中实现多个部分
- java - 如何计算 MongoDB Java 集合中的文档?
- three.js - 在 Three.js 中,IconsaHedron 中的某些面没有应用不透明度
- java - Jenkins 插件或选项来长期报告重复失败的测试
- java - 我想以一个字符只重复一次的方式修剪一个字符串
- react-native - React native 0.61.5 Build 在 Xcode 12.5 beta 上失败
- python - 在python中使用不同的键合并两个字典