Python的中文处理

一、使用中文字符
在python源码中如果使用了中文字符,运行时会有错误,解决的办法是在源码的开头部分加入字符编码的声明,下面是一个例子:
#!/usr/bin/env python
# -*- coding: cp936 -*-
Python Tutorial中指出,python的源文件可以编码ASCII以外的字符集,最好的做法是在#!行后面用一个特殊的注释行来定义字符集:
# -*- coding: encoding -*-
根据这个声明,Python会尝试将文件中的字符编码转为encoding编码,并且,它尽可能的将指定地编码直接写成Unicode文本。
注意,coding:encoding只是告诉Python文件使用了encoding格式的编码,但是编辑器可能会以自己的方式存储.py文件,因此最后文件保存的时候还需要编码中选指定的ecoding才行。
二、中文字符的存储
>>> a='中文'
>>> a
'\xd6\xd0\xce\xc4'
>>> b=u'中文'
>>> b
u'\u4e2d\u6587'
>>> b.encode('gbk')
'\xd6\xd0\xce\xc4'
>>>


更进一步:
>>> len(a)
4
>>> len(b)
2
>>>


unicode是字符流,gbk,utf-8等是字节流

>>> a=u'中文'.encode('gb2312')
>>> a
'\xd6\xd0\xce\xc4'
>>> a=u'中文'.encode('utf-8')
>>> a
'\xe4\xb8\xad\xe6\x96\x87'


encode是将字符流转成了字节流
>>> a=u'中文'.encode('utf-8').decode('utf-8')
>>> a
u'\u4e2d\u6587'


decode是将字节流解码,转成字符流。

转载于:https://www.cnblogs.com/chenjianhong/p/4144493.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值