我在這里瘋了?;ヂ摼W和這個問題告訴我,在python 3.x中,默認編碼為UTF-8。除此之外,我系統的默認編碼是UTF-8。除此之外,我# -*- coding: utf-8 -*-在python 3.5文件的頂部。仍然,python正在使用ascii:# -*- coding: utf-8 -*-mystring = "?"print(mystring)向我打招呼:SyntaxError: 'ascii' codec can't decode byte 0xe2 in position 7: ordinal not in range(128)我也嘗試過:print(mystring.encode("utf-8"))和.decode("utf-8")-一樣。我在這里想念什么?如何強制python停止使用ascii編碼?編輯:我知道抱怨position 7一個字符串似乎很奇怪,但這是我的實際MCVE和我得到的確切輸出。上面是使用python shell,下面是在腳本中。兩者都使用python 3.5.2。編輯:由于我認為這可能是相關的:我要獲取的字符串來自外部應用程序,并且未進行硬編碼,因此我需要一種獲取utf-8字符串并將其保存到文件中的方法。上面只是一個最小化和通用的示例。這是我的真實代碼:# the variables being a string that might contain unicode charactersmystring = "username: " + fromuser + " | printname: " + fromnamewith open("myfile.txt", "a") as myfile: myfile.write(mystring + "\n")
2 回答

慕沐林林
TA貢獻2016條經驗 獲得超9個贊
Python 3.0的新功能說:
所有文本均為Unicode;但是,編碼的Unicode表示為二進制數據
如果您想嘗試輸出utf-8,請參考以下示例:
b'\x41'.decode("utf-8", "strict")
如果要在字符串文字中使用unicode,請使用unicode轉義符及其編碼表示形式。例如:
print("\u24B6")
添加回答
舉報
0/150
提交
取消