簡體   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