python中的汉字编码问题,兼及Qt,兼及各种编码 unicode, utf8,gbk,gb2312,gb18030.....

好久没有来了
还是要坚持下去,写点心得,记录历程

python中的汉字编码问题,兼及各种编码
本文中的环境为windowsXP,默认的字符集为GB18030(CP936)

大陆的汉字的编码有gb2312--->GBK---->GB18030等,他们的范围逐渐扩大,本文中一概用GBK表示

1 python有str unicode两种类型
2 unicode类型可以认为是本体,它是一般的,根本的;它可以encode到其他表现体,比如utf8,gbk,big5
同样的 ,这些“表现体”可以decode到本体;
为了方便程序的适应,建议多使用utf8,兼容简体,繁体
(GBK也包括简体汉字,繁体汉字,但台湾人的电脑上还是big5编码,用utf8可以多方向的转化编码)


>>> s='你好'
>>> s
'/xc4/xe3/xba/xc3'
#普通的字符串,用的是GBK编码
>>> print s
你好

>>> type(s)
<type 'str'>
#类型


>>> s.decode('gbk')
u'/u4f60/u597d'
#当前的系统的表现体是gbk,所以转化到 本体要decode('gbk')

>>> u=s.decode('gbk')
#转化到表现体
>>> type(u)
<type 'unicode'>
>>> u
u'/u4f60/u597d'
>>> u.encode('utf-8')
'/xe4/xbd/xa0/xe5/xa5/xbd'
>>> u.encode('utf-8').decode('utf8')
u'/u4f60/u597d'

utf8,utf16是unicode的实现方式;最常见的是utf8.


Qt中的QString的内容用QChar表示,QChar相当于utf16,少部分字要用2个QChar表示;
QString的toUtf8函数返回QByteArray
fromUtf8()返回本体

QTextCodec类,使用方法,参见QAssistant。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值