最近在使用python的时候,涉及到中文输出的时候经常会出现乱码的问题,所以就上网搜索了下,参考了

1.Python字符串的encode与decode研究心得乱码问题解决方法;
2.python 中编码的再次学习
此外,更多详细字符编码的可以看看这篇文章–字符编码详解

1.encode和decode

(1)字符串在python内部的表示是unicode编码,所以做编码转换的时候就是使用unicode作为中间编码,先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。
(2)decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode(‘gb2312’),表示将gb2312编码的字符串str1转换成unicode编码。
(3)encode的作用是将unicode编码转换成其他编码的字符串,如str2.encode(‘gb2312’),表示将unicode编码的字符串str2转换成gb2312编码。

2.判断类型

可以通过isinstance()函数来判断字符串是否是unicode还是str类型,

如上图所示,字符串类型是str,而在要声明unicode类型则需要在引号前加u。

此外,可以通过下图的方法获得系统的默认编码方式:

因为使用的是win7系统,所以系统默认编码是ascii。
还可以在代码中设置默认编码方式:

reload(sys)
sys.setdefaultencoding("utf-8")

3.输出中文

(1)raw_input方式
如下图,可以有两种方式在命令行中能正确输出中文,而不是乱码:

(2)print 方式
当采用print时,只需要将中文声明为unicode类型即可正确显示。

所以可以根据以下代码输出中文,其中’gb2312’也可以换为’gbk’。


#!/usr/bin/env python
#coding=utf-8
s="中文" if isinstance(s, unicode): #s=u"中文" print s.encode('gb2312')
else: #s="中文" print s.decode('utf-8').encode('gb2312')

Python 问题--encode、decode及shell中文输出相关推荐

  1. python打印汉字报错_python中文输出报错解决方案(实例教程)

    对于刚刚开始接触python这门语言的人来说,可能会对于如何使用这门语言来进行编程会存在有一定的疑惑.如何使用中文来进行程序的编写,会不会与英文的编写有不一样的地方?今天我们就来看一下在python中 ...

  2. python3 gb2312转utf8_字符编码和python使用encode,decode转换utf-8, gbk, gb2312

    python3 爬取网页报错:'gb2312' codec can't decode byte 0xb5 in position 154969: illegal multibyte sequence ...

  3. 学Python必看,Python中encode(),decode()的本质

    学过编码解码的同学应该都知道,是二进制到我们认识的字母数字的过程叫做编码,但在python里,为什么是我们认识的字母数字到二进制叫编码呢? 我看了网上现有的讲解,都没能从本质讲清这个区别,其实要想理解 ...

  4. python字符串encode()decode()

    Python字符串encode() (Python String encode()) Python string encode() function is used to encode the str ...

  5. python中文编码-python中文编码json中文输出问题

    python2.x版本的字符编码有时让人很头疼,遇到问题,网上方法可以解决错误,但对原理还是一知半解,本文主要介绍 python 中字符串处理的原理,附带解决 json 文件输出时,显示中文而非 un ...

  6. python json.loads()中文问题-python中文编码json中文输出问题

    python2.x版本的字符编码有时让人很头疼,遇到问题,网上方法可以解决错误,但对原理还是一知半解,本文主要介绍 python 中字符串处理的原理,附带解决 json 文件输出时,显示中文而非 un ...

  7. python中文编码-python中文编码与json中文输出问题详解

    前言 python2.x版本的字符编码有时让人很头疼,遇到问题,网上方法可以解决错误,但对原理还是一知半解,本文主要介绍 python 中字符串处理的原理,附带解决 json 文件输出时,显示中文而非 ...

  8. python语言支持中文输出_python2输出汉字的解决办法暨python2/python3的编码环境参数的查看-Go语言中文社区...

    版权声明:转载请注明作者(独孤尚良dugushangliang)出处: https://blog.csdn.net/dugushangliang/article/details/89944870 本来 ...

  9. 【python】关于控制台的中文输出出现\x形式的问题 python常用包与如何安装

    关于控制台的中文输出出现\x形式的问题 一般是python2导致的 参考 [https://www.cnblogs.com/xiaoqi/p/5101795.html] [python常用包] [参考 ...

最新文章

  1. PHP入门 1 phpstudy安装与配置站点
  2. boost::fusion::find用法的测试程序
  3. 第12章 与Spring集成
  4. Struts2 第9part 通过实现ModelDriven来接收参数
  5. C#nbsp;Listlt;gt;简单用法
  6. Lesson 4 Part 2 Softmax Regression
  7. 第一次JAVA课,第一次课堂考,课后感受
  8. 4月1日起支付宝、微信扫码支付单日限额500元,够用吗?
  9. python遍历json数据方法
  10. matlab差值报错,matlab插值介绍
  11. upgrade-insecure-requests
  12. 【板栗糖GIS】DOS—如何在当前文件夹内部批量建子文件夹
  13. 【SIGGRAPH】用【有说服力的照片真实】技术实现最终幻想15的视觉特效
  14. SDN多控制器资源池的设计与实现
  15. NEFU 大一寒假训练六(二分查找)题目预测
  16. pdf文档转化为doc文档 (转载)
  17. 微信小程序页面上下滚动、左右滑动(二)
  18. 把PDF或图片的数据导入到SPSS中的方法
  19. ubuntu 网卡流量_详解Linux查看实时网卡流量的几种方式
  20. [DB][mysql]下出现 java.sql.SQLException: Incorrect string value: '\xF4\x80\x8E\xAE\xE8\x83...'

热门文章

  1. hide show vue 动画_(Vue动效)7.Vue中动画封装
  2. jsp+mysql学生成绩管理系统_jsp+servlet+mysql学生成绩管理系统 javaweb成绩管理系统 - 下载 - 搜珍网...
  3. Linux 系统应用编程——网络编程(TCP/IP 数据包格式解析)
  4. 由Qt中qApp想到的(这是单例模式么???)
  5. vue组件化通信之兄弟组件传值
  6. [Redux/Mobx] redux它的三个原则是什么?
  7. Taro+react开发(56) 引用第三方icon
  8. React开发(118):报错处理
  9. 前端学习(3197):jsx语法规则1
  10. [css] 使用css如何设置背景虚化?