[問題] 請問utf-8的問題

作者: earny (蝦米丁)   2022-06-27 01:13:24
對於python 完全是初心者。
目前使用的環境是vs2022+python 3.9 64-bit
因為已經習慣vs的開發介面,所以就....使用它來學習python
程式碼如下:
# -*- coding: big5 -*-
import sys
print(sys.getdefaultencoding())
s1=input("請輸入一個中文:")
print ("你輸入的中文為:"+s1)
很神奇的是第2行仍是秀出utf-8
但在這種設定下,中文是沒有問題的。
如果將程式碼改為
# -*- coding: utf-8 -*-
import sys
print(sys.getdefaultencoding())
s1=input(u"請輸入一個中文:")
print (u"你輸入的中文為:"+s1)
無論有沒有把u拿掉,都會錯在第4行。
SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xbd in position
0: invalid start byte
如果把中文都改為英數的話,即正常。
爬文的結果,似乎在3以後的版本應該不會有這種中文問題。
但偏偏又讓我這個大初心給遇上了。
請問如何在utf-8的編碼下,讓中文字正常呢?
啊,自問自答
在看到這篇文章後,心中的疑問就獲得解答了。
https://openhome.cc/Gossip/CodeData/PythonTutorial/UnicodeBasicIOPy3.html
在存檔時就要選則存檔的編碼為utf-8
這樣中文就正常了。
否則vs2022存檔的編碼是big5
所以在撰寫程式時,第1行要跟直譯器說,這是big5
否則中文就會出錯

Links booklink

Contact Us: admin [ a t ] ucptt.com