gpt4 book ai didi

python - "exec"函数采用什么编码?

转载 作者:行者123 更新时间:2023-11-28 17:35:52 24 4
gpt4 key购买 nike

当您调用 Python (2.7+)“exec”函数时,在解码所提供的字符串输入方面需要哪些假设或操作?

(通过比较——如果你想让项目中的源 .py 文件包含 unicode,你必须在文件顶部嵌入一个“魔术序列”。)

我注意到 exec 似乎可以在字符串输入中找到 unicode,即使我没有尝试在任何地方指示编码。

例如,我可以通过 exec 传递这个字符串:

my_string = "That will cost you ¥ 800.00"

并且由 exec 生成的结果 my_string 变量确实会在其中包含日元符号。所以它似乎 exec 假定为 utf-8?

迈克尔

最佳答案

exec 解析字节串的方式与 Python 读取脚本文件的方式相同。

对于 Python 2.1–2.7(根据 PEP 263),这意味着您默认获得 ISO-8859-1,但您可以使用编码注释更改它:

>>> exec 'print [hex(ord(c)) for c in u"\xC2\xA5"]'
['0xc2', '0xa5']

>>> exec '# coding=iso-8859-1\nprint [hex(ord(c)) for c in u"\xC2\xA5"]'
['0xc2', '0xa5']

>>> exec '# coding=utf-8\nprint [hex(ord(c)) for c in u"\xC2\xA5"]'
['0xa5']

调用exec 的脚本文件的编码不会影响字符串中代码的编码。 (当然,如果您直接编写非 ASCII 字符,则外部脚本编码确实会确定字符串中的字节数。)

关于python - "exec"函数采用什么编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30621772/

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