先看代码
#!/usr/bin/python
print("你好")
然后执行python xxx.py
,提示:SyntaxError: Non-ASCII character ‘\xe4’ in file ./test.py on line 2, but no encoding declared,没有ASCII对应\xe4,也就是中文的不认识;那好,在第二行加上#coding=utf-8
,执行脚本,正常输出;python2对于中文需要显示指定编码;
再用python3来执行没有加指定编码代码的脚本,也是正常输入
那么问题来了,为什么呢?
原因
- 因为python3默认采用utf-8编码,所有没问题;而python2默认采用的是ANSCII编码,所以不认识中文;
- 那为什么python不默认用utf-8编码呢?这里是有历史原因的,第一个python编译器是91年诞生的,utf-8是92年才面世的,直到python3才将utf-8作为默认编码