您的位置:首页 > 编程语言 > Python开发

Python中的str与unicode处理方法

2017-02-09 17:45 447 查看
转自:http://Python.jobbole.com/81244/

python2.x中处理中文,是一件头疼的事情。网上写这方面的文章,测次不齐,而且都会有点错误,所以在这里打算自己总结一篇文章。

我也会在以后学习中,不断的修改此篇博客。

这里假设读者已有与编码相关的基础知识,本文不再再次介绍,包括什么是utf-8,什么是unicode,它们之间有什么关系。


str与字节码

首先,我们完全不谈unicode。

Python

1s = "人生苦短"
s是个字符串,它本身存储的就是字节码。那么这个字节码是什么格式的?如果这段代码是在解释器上输入的,那么这个s的格式就是解释器的编码格式,对于windows的cmd而言,就是gbk。如果将段代码是保存后才执行的,比如存储为utf-8,那么在解释器载入这段程序的时候,就会将s初始化为utf-8编码。# -*- coding:utf-8 -*- 声明文件编码的注释,否则python2.x会默认使用ASCII编码。

unicode与str

我们知道unicode是一种编码标准,具体的实现标准可能是utf-8,utf-16,gbk ……python 在内部使用两个字节来存储一个unicode,使用unicode对象而不是str的好处,就是unicode方便于跨平台。你可以用如下两种方式定义一个unicode:Python

1

2

s1=u"人生苦短"

s2=unicode("人生苦短","utf-8")

Pytho


文件头声明编码的作用。

这要感谢这篇博客关于python文件头部分知识的讲解。

顶部的:# -*- coding: utf-8 -*-目前看来有三个作用。
如果代码中有中文注释,就需要此声明
比较高级的编辑器(比如我的emacs),会根据头部声明,将此作为代码文件的格式。
程序会通过头部声明,解码初始化 u”人生苦短”,这样的unicode对象,(所以头部声明和代码的存储格式要一致

待完善

参考网址:http://blog.csdn.net/vickyrocker1/article/details/50952095
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: