flask在返回headers时的编码问题
看源码时,werkzeug在计算返回头content-length
时,有下面代码:
content_length = sum(len(to_bytes(x, 'ascii'))
for x in self.response)
而to_bytes()有如下定义:
def to_bytes(x, charset=sys.getdefaultencoding(), errors='strict'):
if x is None:
return None
if isinstance(x, (bytes, bytearray, buffer)):
return bytes(x)
if isinstance(x, unicode):
这里--> return x.encode(charset, errors)
raise TypeError('Expected bytes')
如果这里的x为unicode的中文,x.encode('ascii')
不就执行错误了吗?但实际上网站里出现中文也不会出错,这是为什么呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论