9Python全栈之路系列之Win字符编码深解

简介:

Win下的dos窗口输出中文

Python2.7默认字符编码是ascii格式,即使指定字符编码为UTF-8也未必能够输出中文,测试如下:


1
2
3
4
5
#_*_coding:utf-8_*_
# 定义一个变量内容为中文,字符集为UTF-8
temp  =  "中文"
# 输出变量temp的内容
print (temp)

用win下的dos窗口执行这个脚本,看看输出出来的是否为中文

C:\Users\anshe>python F:\Python_code\sublime\Day02\print.py
涓枃        #输出出来的是乱码

这是为什么呢?其实是因为dos窗口的字符编码是GBK的(如下图),规定输出的字符集必须是GBK的,所以输出出来的中文即为乱码。
python-day02-01
注意我是用的是Python2.7.11

1
2
C:\Users\anshe>python  - V
Python  2.7 . 11

使用Pycharm或者sublimePython IDE输出中文流程
python-day02-02

流程中文说明:
Py Scripts头部指定编码格式为UTF-8 —> IDE把默认的Ascii格式编码成UTF-8 —-> IDE终端输出中文

  • 用sublime IDE输出

1
2
3
4
5
# _*_ coding:utf-8 _*_
# 定义一个变量内容为中文,字符集为UTF-8
temp  =  "中文"
# 输出变量temp的内容
print (temp)

输出的内容:
python-day02-05
既然这样,python的编码能够把ascii编码还换成UTF-8那么肯定也就可以转换成GBK编码,流程如下:
python-day02-03
代码如下:

1
2
3
4
5
6
7
8
9
# _*_ coding:utf-8 _*_
# 定义一个变量内容为中文,字符集为UTF-8
temp  =  "中文"
# 解码,需要指定原来是什么编码
temp_unicode  =  temp.decode( "utf-8" )
# 编码,需要指定要转换成什么编码
temp_gbk  =  temp_unicode.encode( "gbk" )
# 输出转换成的gbk编码
print (temp_gbk)

Dos窗口执行测试:

1
2
C:\Users\anshe>python F:\Python_code\sublime\Day02\ print .py
中文

另外一种方法:
代码:

1
2
3
4
5
6
7
8
# _*_ coding:utf-8 _*_
# 定义一个变量内容为中文,字符集为UTF-8
temp  =  "中文"
# 解码,需要指定原来是什么编码
temp_unicode  =  temp.decode( "utf-8" )
# 输出转换成的gbk编码
print (temp_unicode)
# Windows终端需要GBK,DOS自动转换成GBK
C:\Users\anshe>python F:\Python_code\sublime\Day02\print.py
中文

大概流程也就像下面的图一样
python-day02-04
python3移除了unicode字符集的类型,默认使用UTF-8,还有一种也可以在dos终端输出中文的方法,代码如下:

# _*_ coding:utf-8 _*_
print(u"中文")

DOs窗口输出的就是中文了,虽然我也不知道是什么意思

1
2
C:\Users\anshe>python f:\Python_code\sublime\Day02\ print .py









本文转自 Edenwy  51CTO博客,原文链接:http://blog.51cto.com/edeny/1912292,如需转载请自行联系原作者
目录
相关文章
C4.
|
1月前
|
存储 Python
Python字符编码
Python字符编码
C4.
14 1
|
9天前
|
JavaScript 前端开发 Docker
全栈开发实战:结合Python、Vue和Docker进行部署
【4月更文挑战第10天】本文介绍了如何使用Python、Vue.js和Docker进行全栈开发和部署。Python搭配Flask创建后端API,Vue.js构建前端界面,Docker负责应用的容器化部署。通过编写Dockerfile,将Python应用构建成Docker镜像并运行,前端部分使用Vue CLI创建项目并与后端交互。最后,通过Nginx和另一个Dockerfile部署前端应用。这种组合提升了开发效率,保证了应用的可维护性和扩展性,适合不同规模的企业使用。
|
27天前
|
Python
老男孩&路飞学城Python全栈
老男孩&路飞学城的Python全栈开发重点班由ALEX老师主讲,核心教学内容,100多天课程,近100G资料,含基础到实战。一线技术专家亲授,以案例教学引导学生逐步进入项目实战。
20 1
老男孩&路飞学城Python全栈
|
1月前
|
存储 编解码 Python
Python中怎么处理字符编码问题
Python中怎么处理字符编码问题
14 0
|
3月前
|
监控 安全 前端开发
Python全栈安全:构建安全的全栈应用
Python全栈安全:构建安全的全栈应用
38 0
|
6月前
|
自然语言处理 Java 程序员
Python中的字符串与字符编码2
Hello,这里是Token_w的博客,欢迎您的到来 今天文章讲解的是Python中的字符串与字符编码,其中有基础的理论知识讲解,也有实战中的应用讲解,希望对你有所帮助 整理不易,如对你有所帮助,希望能得到你的点赞、收藏支持。感谢
36 1
|
6月前
|
存储 Java PHP
Python中的字符串与字符编码1
Hello,这里是Token_w的博客,欢迎您的到来 今天文章讲解的是Python中的字符串与字符编码,其中有基础的理论知识讲解,也有实战中的应用讲解,希望对你有所帮助 整理不易,如对你有所帮助,希望能得到你的点赞、收藏支持。感谢
29 1
|
8月前
python--运算符,字符编码
python--运算符,字符编码
|
10月前
|
存储 SQL NoSQL
Python全栈开发(五)——python数据库MySQL
今天简单说说MySQL,我们存储数据,直接用本地文件即可,但是,本地文件不利于存放海量数据,也不利于用程序对文件的数据进行查询与管理,我们可以使用数据库。
125 0
|
10月前
|
存储 关系型数据库 MySQL
Python全栈开发(四)——python面向对象编程
Python全栈开发(四)——python面向对象编程
86 0