• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python2.x中文乱码问题解决方法

Python2.x中文乱码问题解决方法

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了python2.x,python2.x下载,python2.x和3.x,python2.x和3.x区别,get方法中文乱码等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Python中乱码问题是一个很头痛的问题。
在Python3中,对中文进行了全面的支持,但在Python2.x中需要进行相关的设置才能使用中文。否则会出现乱码

【问题原因】

在Python2.x中主要是字符编码的问题,处理不好的话,会导致乱码。Python默认采取的ASCII编码,字母、标点和其他字符只使用一个字节来表示,但对于中文字符来说,一个字节满足不了需求。
>>> import sys 
>>> sys.getdefaultencoding() 
'ascii' 
</div>

为了能在计算机中表示所有的中文字符,中文编码采用两个字节表示。如果中文编码和ASCII混合使用的话,就会导致解码错误,从而才生乱码。而CMD下默认的编码方式为:GBK,所以就造成了上面的乱码!

采用两个字节的中文编码标准有:GB2312、GBK、BIG5等。

【处理办法】

为了将各种不同的语言包含在统一的字符集中,满足国际间的信息交流,国际上制订了UNICODE字符集,包含了世界上所有语言字符,这些字符具有唯一的编码,通过使用UNICODE字符集可以满足跨语言的文字处理,避免乱码的产生。
i)  交互式命令中:一般不会出现乱码,无需做处理

ii) py脚本文件中:跨字符集必须做设置,否则乱码。
首先在开头一句添加:
# coding = utf-8 
# 或 
# coding = UTF-8 
# 或 
# -*- coding: utf-8 -*- 
</div>
其次需将文件保存为UTF-8的格式!

上面那一句仅仅是告诉Python编译器:脚本中包含了非ASCII字符,并未进行转换。
如果要将字符编码从默认的ASCII改为UTF-8,需要在保存的时候选择保存为UTF-8格式。

如果是用NODEPAD打开,【另存为】-->UTF-8即可

如果是用IDLE打开,【Options】-> 【Configure IDLE】->【General】

上面的设置,可以保证IDLE,运行F5,能正常输出中文。

【编码解码】

在开头添加了# -*- coding: utf-8 -*-并将文件保存为UTF-8格式,仍然不能保证能输出正常输出中文,
不同的编辑器,如VIM,IDLE,Eclipse使用的输出编码都是不一致的。
所以,在一个地方能正常输出中文,在另外一个地方就未必。所以还必须做编码解码设置!

encode:编码
decode:解码

必须保证编码、解码的对象是同一个。比如说UTF-8方式编码, 必须再用UTF-8进行解码即可。

所以最终解决办法,还必须先按原先的方式解码,再按控制台格式重新编码:比如CMD默认是GBK方式
则必须使用如下方式:

正确输出结果:

【其他说明】
1.在Python3中,对中文的支持非常全面,源文件默认保存为UTF-8的编码,这样一来,不但可以在源代码中使用中文,而且变量名也可以使用中文,比如说:
>>> 中国 = 'Chinese' 
>>> print(中国) 
Chinese 
</div>
2.在Python3中,不需要来回的编解码,并且字符串对象也没有decode和encode方法。

</div>

您可能想查找下面的文章:

  • Python2.x利用commands模块执行Linux shell命令
  • Python2.x利用commands模块执行Linux shell命令
  • Windows下使Python2.x版本的解释器与3.x共存的方法
  • Python2.x版本中基本的中文编码问题解决
  • Windows下使Python2.x版本的解释器与3.x共存的方法
  • Python2.x版本中基本的中文编码问题解决
  • Python2.x中文乱码问题解决方法
  • 简单介绍Python2.x版本中的cmp()方法的使用
  • Python2.x版本中maketrans()方法的使用介绍
  • Python2.x版本中cmp()方法的使用教程

相关文章

  • 利用Python如何生成随机密码
  • 在Python的Django框架中更新数据库数据的方法
  • Python操作MongoDB数据库PyMongo库使用方法
  • Python实现包含min函数的栈
  • 详解Python中的装饰器、闭包和functools的教程
  • python入门教程之识别验证码
  • 详解Django框架中的视图级缓存
  • python随机生成指定长度密码的方法
  • Python检测生僻字的实现方法
  • python中enumerate函数遍历元素用法分析

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python optparse模块使用实例
    • python通过ftplib登录到ftp服务器的方法
    • python根据文件大小打log日志
    • python创建进程fork用法
    • python进阶教程之动态类型详解
    • Python匹配中文的正则表达式
    • 浅谈django中的认证与登录
    • python实现封装得到virustotal扫描结果
    • Python多层嵌套list的递归处理方法(推荐)
    • Python实现的金山快盘的签到程序

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有