[问题] 请问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