作者earny (虾米丁)
看板Python
标题[问题] 请问utf-8的问题
时间Mon Jun 27 01:13:24 2022
对於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
否则中文就会出错
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.133.83.151 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1656263607.A.60E.html
※ 编辑: earny (220.133.83.151 台湾), 06/27/2022 01:15:33
※ 编辑: earny (220.133.83.151 台湾), 06/27/2022 01:24:06