gpt4 book ai didi

unicode - Python 3 不读取新服务器上的 unicode 文件

转载 作者:行者123 更新时间:2023-12-04 16:30:37 24 4
gpt4 key购买 nike

我的网页由一个动态导入一堆文件的脚本提供服务

try:
with open (filename, 'r') as f:
exec(f.read())
except IOError: pass

(实际上,你能推荐一种更好的导入文件的方法吗?我敢肯定有一个。)

有时文件有不同语言的字符串,比如
# contents of language.ru
title = "Название"

这些都保存为 UTF-8 文件。 Python 在命令行中运行脚本或从我的 MacBook 提供页面没有问题:

OK:【服务器命令行】python3.0 page.py/index.ru
好的:http://whitebox.local/index.ru

但是在尝试从我们刚刚移动到的服务器上提供页面时会引发错误:

157 尝试:
158,打开(文件名,'r')为f:
159 执行(f.read())
160 除了 IOError:通过
161
/usr/local/lib/python3.0/io.py in read(self=, n=-1)
...
UnicodeDecodeError:“ascii”编解码器无法解码位置 627 中的字节 0xe1:序数不在范围内(128)

所有文件都是从我的笔记本电脑上复制的,它们由 Apache 完美地提供服务。是什么原因?

更新:我发现了 open() 的默认编码是平台相关的,所以它是 utf8在我的笔记本电脑上和 ascii在服务器上。我想知道在 Python 3 中是否有一个按程序设置的函数( sys.setdefaultencodingsite 模块中使用,然后从命名空间中删除)。

最佳答案

使用open(filename, 'r', encoding='utf8') .
Python 3 docs for open .

关于unicode - Python 3 不读取新服务器上的 unicode 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/983720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com