python 处理字符编码问题

今天好不容易重新开始写Python做实验,结果被字符编码虐的体无完肤。其实之前就已经比较清楚python处理字符编码的套路,但是今天白天反复的出现can‘t encode/decode ..., the original code not in 178之类的提示,甚是无力,后来偶尔使用了一下sys.setdefaultencoding(‘utf8‘)就解决了全部问题,真是不解。

下面还是总结一下Python几个编码设置的含义吧。

1. #coding=utf8

这种形式的注释告诉解释器,应该以coding指定的编码解析源文件,也就是指定脚本文件本身使用的编码。

2. sys.setdefaultencoding(‘utf8‘)

这种方式用于告诉python解释器应该以何种编码的方式解释str类型的字符串。python解释器默认的是‘ascii‘编码,可以通过sys.getdefaultencoding()的方式获得该编码信息。

如果想要使用sys.setdefaultencoding(‘utf8‘)重新指定str编码,那么需要reload(sys)才能调用setdefaultencoding()方法。

3. str和unicode

str和unicode是两个不同的工厂方法,产生str或者unicode对象。str方法相当于从一种编码encode到默认编码,而unicode相当于从一种编码decode到默认编码。需要注意的是通常来说默认编码是ascii的。

4. 处理字符串的套路

程序内部尽量全部使用unicode编码,也就是如果是一个字符串,则用u来修饰,如u‘你好‘。如果需要从文件中读入字符串内容,则decode成unicode;如果需要写出到文件或者输出,则encode到相应的编码即可。

希望后面在用python处理字符串编码问题的时候能够顺利解决吧,God bless me.

参考链接

http://www.cnblogs.com/huxi/articles/1897271.html

http://foofish.net/blog/16/understanding-python-charset

时间: 2024-10-12 13:28:38

python 处理字符编码问题的相关文章

Python常见字符编码间的转换

学习Python,字符编码间的转换是绕不过去的一只拦路虎,不把编码彻底搞明白,总有一天它会猝不及防坑你一把. Python2.x和Python3.x在字符编码的设置上也有很大区别(Python3未来将是主流,所以Python3为主),今天我们就来一起学习下. 上一篇文章里我已经简述了Python的常见编码了,这里就不再赘述了,还不清楚的小伙伴可以先去看下:     http://www.cnblogs.com/schut/p/8406897.html 一.Unicode 和 UTF-8的纠葛 U

python之----------字符编码具体原理

1.内存和硬盘都是用来存储的. CPU:速度快 硬盘:永久保存 2.文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就可以启动一个进程,是在内存中的,所以在编辑器编写的内容也都是存放在内存中的,断电后数据就丢失了.因而需要保存在硬盘上,点击保存按钮或快捷键,就把内存中的数据保存到了硬盘上.在这一点上,我们编写的py文件(没有执行时),跟编写的其他文件没有什么区别,都只是编写一堆字符而已. 3.python解释器执行py文件的原理,例如python  test.

python之字符编码(四)

一.字符编码的使用: 1.文本编辑器 unicode----->encode-------->utf-8 utf-8-------->decode---------->unicode 补充: 浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器 如果服务端encode的编码格式是utf-8, 客户端内存中收到的也是utf-8编码的结果. 2.文本编辑器nodpad++: 分析过程?什么是乱码 文件从内存刷到硬盘的操作简称存文件 文件从硬盘读到内存的操

Python:字符编码详解

相关文章 Python中文编码问题:为何在控制台下输出中文会乱码及其原理 1. 字符编码简介 1.1. ASCII ASCII(American Standard Code for Information Interchange),是一种单字节的编码.计算机世界里一开始只有英文,而单字节可以表示256个不同的字符,可以表示所有的英文字符和许多的控制符号.不过ASCII只用到了其中的一半(\x80以下),这也是MBCS得以实现的基础. 1.2. MBCS 然而计算机世界里很快就有了其他语言,单字节

Python基础(字符编码与文件处理)

一.了解字符编码的知识储备 1.计算机基础知识(三副图) 2.文本编辑器存取文件的原理(notepad++,Pycharm,word) 打开编辑器就启动了一个进程,是在内存中运行的,所以在编辑器写的内容在没保存之前都是存放在内存中的,断电后数据就会丢失.因而需要保存到硬盘上,点击保存按钮,就从内存中把数据刷到硬盘上. 3.Python解释器执行py文件的与原理,例如python test.py 第一阶段:python解释器启动,此时就相当于启动了一个文本编辑器. 第二阶段:python解释器相当

第六节,初识python和字符编码

程序语言的发展 机器语言 程序语言,最初的计算机语言是机器语言,完全是0和1组成的二进制串  如:01010101 11010101 汇编语言 因为01010101的字符串,冗长,不利于维护,所以产生了带助记符的汇编语言 举例:fua = 01010101    fub = 11010101 c语言 在汇编的基础上开发了c语言 有了常量,变量,字符串,等运算规则 java.c#.php.python 在c语言的基础长有发展了java.c#.php.python 等各种语言 这些语言都需要安装运行

python之字符编码

(一)什么是字符编码: 计算机中所有的数据,包括文件,图片,视频,音频等都是以二进制的方式 存储的,计算机只能识别0,1这样的机器语言.而我们想让计算机替我们工作必须能让计算机能够识别我们对它发出的指令,那么就需要一种方式把我们人类的语言翻译成计算机能听懂的语言.这个翻译的过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之为字符编码. (二)字符编码的发展历程: 阶段一,ASSCII码:一个bytes代表一个字符(英文字符以及键盘上其它所有的字符)1bytes=8bit,8bit可以表

Python之字符编码(Day10)

1. python解释器执行py文件的原理 ,例如python test.py    第一阶段:python解释器启动,此时就相当于启动了一个文本编辑器 第二阶段:python解释器相当于文本编辑器,去打开test.py文件,从硬盘上将test.py的文件内容读入到内存中(小复习:pyhon的解释性,决定了解释器只关心文件内容,不关心文件后缀名) 第三阶段:python解释器解释执行刚刚加载到内存中test.py的代码( ps:在该阶段,即执行时,才会识别python的语法,执行文件内代码,执行

《转》Python学习(13)-Python的字符编码

转自 http://www.cnblogs.com/BeginMan/p/3166363.html 一.字符编码中ASCII.Unicode和UTF-8的区别 点击阅读:http://www.cnblogs.com/kingstarspe/p/ASCII.html 再推荐一篇相关博文:http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html 二.Unicode与ASCII Python能处理Unicode和ASCII编码,为了让这两者