好久没有来了
还是要坚持下去,写点心得,记录历程
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。
还是要坚持下去,写点心得,记录历程
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。