python string和PyQt的QString的区别

 我来答
qi...8@163.com
2016-10-14 · 超过25用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:31.9万
展开全部
以下在 Python2.6和PyQt4.4.4 for Python2,6环境下讨论:
Python中有两种有关字符的类型:Python string object和Python Unicode object。主要使用Python string object进行数据输入输出。
PyQt中与之相对应的字符有关类型是:QByteArray和QString。主要使用QString操作数据。

1)Python string object是原始编码是有区分的,通过 decode('原始编码') 解码得到utf16类型即Python Unicode object。Python Unicode object原始编码固定是utf16,通过 encode('目的编码') 编码来得到Python string object。
2)对于英 文,PyQt函数需要QString参数的地方都可以直接用Python string object或者Python Unicode object。对于中文,利用unicode()函数显示指定gb2312编码进行中文编码转换,转换后的Python Unicode object可以直接作为QString参数代入。
unicode('中 文', 'gb2312', 'ignore')
3)对于英文,可以使 用unicode()直接将QString转换为Python Unicode object,并进一步encode()得到Python string object,也可以使用str()函数直接将QString转换为Python string object。对于中文,利用unicode()指定原始编码gbk来解决QString转换为Python Unicode object问题,但对于GUI使用仍有缺陷,不过无碍;进一步利用encode('gb2
312')得到Python string object,或者结合QString的toUtf8()再利用str()函数;但对于GUI编程str()方法还是不行,只可结合QString的 toUtf8()进行unicode()转换后再利用encode('gb2
312')。
str(QtCore.QString(' 中文').toAscii())
unicode(QtCore.QString('中文'),'gbk','ignore').encode('gb2312')
myText = unicode(self.myLineEdit.text().toUtf8(),'utf8', 'ignore').encode('gb2312')
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式