Win下的dos窗口输出中文

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


#_*_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的,所以输出出来的中文即为乱码。

注意我是用的是Python2.7.11

C:\Users\anshe>python -V
Python 2.7.11

使用Pycharm或者sublimePython IDE输出中文流程

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

  • 用sublime IDE输出

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

输出的内容:

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

代码如下:

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

Dos窗口执行测试:

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

另外一种方法:
代码:

# _*_ 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
中文

大概流程也就像下面的图一样

python3移除了unicode字符集的类型,默认使用UTF-8,还有一种也可以在dos终端输出中文的方法,代码如下:

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

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

C:\Users\anshe>python f:\Python_code\sublime\Day02\print.py
中文

#Python全栈之路

作者:安生

转载于:https://blog.51cto.com/edeny/1912292

9Python全栈之路系列之Win字符编码深解相关推荐

  1. 4Python全栈之路系列之Django模型

    Python全栈之路系列之Django模型 MTV开发模式 把数据存取逻辑.业务逻辑和表现逻辑组合在一起的概念有时被称为软件架构的Model-View-Controller(MVC)模式.在这个模式中 ...

  2. 2Python全栈之路系列之基于socket实现聊天机器人

    Python全栈之路系列之基于socket实现聊天机器人 通过socket实现局域网内的聊天工具. service.py文件如下: #!/usr/bin/env python # _*_ coding ...

  3. 1Python全栈之路系列Web框架介绍

    Python全栈之路系列之Web框架介绍 所有的语言Web框架本质其实就是起一个socket服务端,监听一个端口,然后运行起来 Web框架包含两部分,一部分是socket,另外一部分是业务的逻辑处理, ...

  4. 2Python全栈之路系列之MysQl基本数据类型

    Python全栈之路系列之MySQL基本数据类型 MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类: 数字类型 日期和时间类型 字符串类型 数字类 ...

  5. 1Python全栈之路系列之MySQL数据库基本操作

    Python全栈之路系列之MySQL数据库基本操作 MySQL数据库介绍 MySQL是一种快速易用的关系型数据库管理系统(RDBMS),很多企业都在使用它来构建自己的数据库. MySQL由一家瑞典公司 ...

  6. 5Python全栈之路系列之字符串格式化

    Python全栈之路系列之字符串格式化 This PEP proposes a new system for built-in string formatting operations, intend ...

  7. 8Python全栈之路系列之Django Cookie 与Sessi

    Python全栈之路系列之Django Cookie与Sessi Cookies cookies是浏览器为Web服务器存储的一小段信息,每次浏览器从某个服务器请求页面时,它向服务器回送之前收到的coo ...

  8. 4python全栈之路系列之scrapy爬虫s

    python全栈之路系列之scrapy爬虫 An open source and collaborative framework for extracting the data you need fr ...

  9. 7Python全栈之路系列之Django表单

    Python全栈之路系列之Django表单 从Request对象中获取数据 HttpRequest对象包含当前请求URL的一些信息: 熟悉/方法 描述 例如 request.path 除域名以外的请求 ...

最新文章

  1. MVC 之 架构的基本原理及Asp.Net实现MVC
  2. 迈入幸福婚姻殿堂的星座女
  3. Puppet学习之文件管理
  4. 一般判五年几年能出来_判刑五年能减刑多少年
  5. RocketMQ实战与原理---安装、部署及简单应用
  6. android生成圆形头像
  7. ReentrantLock.nofairTryAcquire
  8. 八、梯度下降法和拟牛顿法
  9. C#获2021年度编程语言奖,开发者们最该关注这些亮点!
  10. leetcode 1423. 可获得的最大点数(滑动窗口)
  11. 前端学习(2796):实现左侧数据渲染和点击高亮
  12. 2022年软考信息安全工程师考试备考指南
  13. docker ubuntu16安装
  14. 三层交换机与路由器对接上网
  15. IMP 导入数据报错 OCI-21500 OCI-22275
  16. 【Flutter 问题系列第 25 篇】Flutter 使用自定义字体
  17. 攻防世界----mfw
  18. 通过耳机口左右声道输出得到4路控制信号
  19. 用Glide-图片的压缩-图片压缩原理
  20. 【问题解决】HOST_JUJU_LOCK_PERMISSION 。。

热门文章

  1. python比c语言好学吗-python和c语言哪个更适合初学者
  2. LeetCode Merge k Sorted Lists(有序单链表数组的合并)
  3. bootsrtap h5 移动版页面 在苹果手机ios滑动上下拉动滚动卡顿问题解决方法
  4. exception is the version of xbean.jar correct
  5. 【Java面试题】13 Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?...
  6. iOS 设置button文字过长而显示省略号的解决办法
  7. 福布斯2015中国非上市潜力企业100强
  8. 利用jQuery和CSS实现环形进度条
  9. 会计电算化练习题目(模拟练习8)
  10. 乘法器之五(混和式乘法器(Hybrid multiplication))