Python 2.x中的和编码相关的常见问题和注意事项
来源:互联网 发布:怀化网络干部学院 编辑:程序博客网 时间:2024/06/18 03:11
声明:
1.本文不再更新。
2.本人内容,已合并到:
【总结】Python中常见字符编码和解码方面的错误及其解决办法
新帖子总结的更加全面,并且分析了原因,和总结了解决办法,还给出了示例代码。
3.这方面的内容,如有更新,也只会更新到上述新帖子中。
Python 2.x中,的确是,经常性地,容易出现字符编码相关的错误。
即便像我这样的,算是在字符编码折腾了很长时间的,也自认为比较了解字符编码方面的情况了,结果也还是偶尔再次遇到类似的问题。
所以,在此特地总结一下,一些常见,Python 2.x中的编码的问题:
注:Python 3.x中的编码,进行了重新设计,相对来说,会很少出现这类编码问题。
关于Python 2.x和Python 3.x,不了解的可以去参考:
【整理】总结Python2(Python 2.x版本)和Python3(Python 3.x版本)之间的区别
1.字符(变量)本身是对的,但是(打印)输出时出错或乱码
有时候,虽然已经获得了正常的字符,但是却由于输出过程中,由于输出目标(终端,文件等)中不支持该编码,而导致出现字符显示方面的错误
已获得的正常的字符包括两类:
- Unicode
- 某种编码的字符:比如UTF-8等
要输出的目标,也包括几种:
- windows的cmd:最最常见的,是Windows XP/Win7中的命令行cmd,多数的默认编码为GBK
- 注:cmd的默认编码,也可以改的,具体可参考:设置字符编码:简体中文GBK/英文
- 文件:但是该文件已经是某种编码的,比如通过codecs模块设置为UTF-8编码了
#!/usr/bin/python# -*- coding: utf-8 -*-"""Function:【总结】Python 2.x中的和编码相关的常见问题和注意事项https://www.crifan.com/summary_python_2_x_string_related_problem_and_note Version: 2012-11-22Author: Crifan""" #测试1:将UTF-8字符,在GBK编码中的cmd中显示utf8Str = "crifan 在路上";print "try show UTF-8 string in (GBK encoding) cmd, utf8Str=",utf8Str;#此处虽然能显示,但是却是乱码:#try show UTF-8 string in (GBK encoding) cmd, utf8Str= crifan 鍦ㄨ矾涓 #测试2:已获得正确的Unicode字符,将其显示在GBK编码的cmd中 #任何字符,都可以在:#http://unicodelookup.com/#中,查找到对应的unicode的值 #can found at:#http://zhidao.baidu.com/question/500133781.htmlslashUStr = "\\u3232\\u6674"; #(有) 晴decodedUniChars = slashUStr.decode("unicode-escape"); #此处已经可以正常获得对应的两个Unicode字符了print "decodedUniChars=",decodedUniChars;#此处在cmd中输出的话,会出现错误的:#UnicodeEncodeError: 'gbk' codec can't encode character u'\u3232' in position 0: illegal multibyte sequence#那是因为,Unicode字符:0x3232,是个特殊字符,而此字符,在GBK编码中没有,所以当然无法显示#所以,当此处,要将值为0x3232的Unicode字符,去尝试编码为GBK,尝试在cmd中输出显示的时候,就出现了UnicodeEncodeError#即,此种UnicodeEncodeError,是由于输出目标所用字符编码中,没有包含此(特殊)字符而导致的
阅读全文
0 0
- Python 2.x中的和编码相关的常见问题和注意事项
- Python之常见问题和常见注意事项
- Python 和 数据库相关的编码问题
- Python 3.x中的编码和解码问题
- 【待整理】Python中的编码问题和相关error
- Python 2.x 中的 raw_input() 和 input()
- Python中字符编码的总结和对比:Python 2.x的str和unicode vs Python 3.x的bytes和str
- python的2.x和3.x
- python中的编码和解码
- python 2.x和3.x中的字符串区别
- Python中的X[:,0]和X[:,1]
- Python中的X[:,0]和X[:,1]
- Python中的X[:,0]和X[:,1]
- Python 2.x中的编码问题
- 【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法
- 【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法
- Python 2.x中常见字符编码和解码方面的错误及其解决办法 总结
- 【总结】Python 2.x中常见字符编码和解码方面的错误及其解决办法
- Android Studio 显示函数用法提示悬浮窗,解决fetching documentation问题
- 努力学习python第一天
- git使用方法-下载or上传代码到github--记录下防止忘了
- printf("%d,%d,%d,%d\n",i++,--i,++i,i++);编译器是如何处理的。
- githug
- Python 2.x中的和编码相关的常见问题和注意事项
- 开放封闭原版OCP
- (React-Native 学习之一) Windows版本搭建安装React Native环境配置
- NOIP模拟10.27
- idea中JSP页面不能访问静态资源(图片,js,css)
- 【安全预警公告】新勒索病毒Bad Rabbit(坏兔子)来袭,请做好防御准备
- FPGA设计中的时钟问题
- SQL笔试题(持续更新)
- 根据HTML+CSS完成一个三列布局,左右侧栏宽为180px,高为300px;中间栏自适应,高为300px;中间栏子元素(宽高不确定)实现水平、垂直居中。