繁体   English   中英

Python 三引号字符串中的度数符号

[英]degree symbol in Python triple-quoted string

Python 3.7 解释器似乎不会接受具有包含度数符号等特殊字符的三重引号字符串的模块。 (我不想对度数符号使用编码,因为注释是查看代码的人的好处,这将变得难以理解)。 有什么办法可以解决这个问题吗?

如果 Python 文件使用 8 位编码而不是 UTF-8 进行了错误编码,则可以重现此问题。 字节0xb0映射到许多 8 位编码中的度数符号,如此处所示

如果 python 文件编码为 latin-1,则会重现错误

iconv --from-code=utf-8 --to-code=latin1 special_char.py > latin_1_char.py
python3.7 latin_1_char.py 
  File "latin_1_char.py", line 4
    """
SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xb0 in position 145: invalid start byte

或者作为 cp1252

iconv --from-code=utf-8 --to-code=cp1252 char.py > cp1252_char.py
(so38) kdwyer@osiris:~/p/so38  $ python3.7 cp1252_char.py 
  File "cp1252_char.py", line 4
    """
SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xb0 in position 145: invalid start byte

但如果文件编码为 utf-8 则不会

iconv --from-code=latin1 --to-code=utf-8 latin_1_char.py > utf8_char.py
python3.7 utf8_char.py 
Hello!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM