使用Qstring时候碰到的一个bug
2011-11-07 13:46
218 查看
if str(self.btn_name.text()).lower == "empty ":
这是代码最早的写法,问了下写这代码的人,才知道这边加上str是因为.btn_name.text()的结果是Qstring,需要str转换为string类型,这样才能调用lower方法。
后来我发现Qstring好像也有lower的方法。
lower后面少了(),可能是疏忽吧。
但是这句话还是报错:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-11: ordinal not in range(128)
明显是编码问题了。
google了一番说Qstring是unicode的,‘empty’是char类型的
所有想用toAscii()转换为ASCII,但是网上找到的质料都说会报错。
而且网络上的质料都是想办法把中文显示出来而已,和我的目标不太一样。
后来听同事说u'aaa' 和‘aaa’比较是相等的,所以直接用unicode和ascii比较:
于是用下面的方法把中文转换为utf8编码的字符串,然后调用lower()
if unicode(self.btn_name.text().toUtf8(), 'utf8', 'ignore').lower() == 'empty':
这是代码最早的写法,问了下写这代码的人,才知道这边加上str是因为.btn_name.text()的结果是Qstring,需要str转换为string类型,这样才能调用lower方法。
后来我发现Qstring好像也有lower的方法。
lower后面少了(),可能是疏忽吧。
但是这句话还是报错:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-11: ordinal not in range(128)
明显是编码问题了。
google了一番说Qstring是unicode的,‘empty’是char类型的
所有想用toAscii()转换为ASCII,但是网上找到的质料都说会报错。
而且网络上的质料都是想办法把中文显示出来而已,和我的目标不太一样。
后来听同事说u'aaa' 和‘aaa’比较是相等的,所以直接用unicode和ascii比较:
于是用下面的方法把中文转换为utf8编码的字符串,然后调用lower()
if unicode(self.btn_name.text().toUtf8(), 'utf8', 'ignore').lower() == 'empty':
相关文章推荐
- 使用百度编辑器的时候的一个小bug
- 记录使用MAT(Memory Analyzer Tool)时碰到的一个Bug
- Url以.(点)结尾,在使用httpwebrequest读取的时候,微软会有一个bug……
- Linux 2.4.18的内核在使用S3C2410板的USB设备时碰到的一个Bug的解决办法
- TabLayout使用的时候会遇到的一个bug
- C++ 在使用CHttpFile进行http通信的时候遇到了一个Bug
- php当数据量不是很大的时候,使用【递归循环出树形结构】的一个用户下面的所有人
- iOS开发之使用UICollectionView实现美团App的分类功能【偶现大众点评App的一个小bug】
- Android使用EditText遇到的一个bug
- 使用WebDriver的过程中遇到的一个Bug
- [开发工具]_[VS2010]_[vs2010的一个bug-使用stringstream时出现]
- 开发过程碰到的一个bug
- 数据源控件如何使用Session做参数,尤其是参数是一个对象时候
- android开发Enum (枚举)的更轻量级的替代方案 —— @IntDef的使用 原创 2017年11月28日 09:17:58 77 最近在翻看Android源码的时候,无意中看到这么一个注解,
- 在虚拟机的XP中使用管道出现的问题,可能是一个BUG,先记录下来
- 在Quartus II中使用JTAG模式固化程序到EPCS中的方法==掌握这个方法后就可以在做PCB时候只留一个JTAG下载口即可。
- Flex AIR: 使用透明 NativeWindow 窗体呈现 Line Chart 的一个 bug (Exception in CartesianChart/updateMultipleAxesStyles)
- [Qt] 使用arg()从double转换到QString的Bug?
- (hdu step 4.2.7)Kill the monster(有n个技能,求杀死怪物的技能的最小使用次数。在使用某一个技能的时候,如果怪物的能量值hp<=m,这时候造成的伤害值是原来的两倍)
- Quarz使用时碰到的一个问题