Android 上的 制表符(tab) —— 一个神奇的字符 (cocos2dx crash)

今天测试发现了游戏的一个问题,系统邮件,如果发了tab,在android上一打开邮件内容就会crash。而且他们很确定是tab的问题。


    凭我多个月的经验(确实没多年。。。)来看,从来没听说在android上会因为一个tab崩溃,而且如果有这个问题,肯定会有很多人遇到,估计早就吵翻天了,搜索了一下,什么可用信息都没有。

    于是写个测试工程测试了一下,分别在mac下和windows下,用文本编辑工具编辑了4个txt文档,utf有bom和无bom,内容是“ tab abcd ”,发现都能正常显示,也不会crash。如下:

    unsigned long fSize = 0;
    unsigned char *data = CCFileUtils::sharedFileUtils()->getFileData("tab.txt", "rb", &fSize);
    
    CCLabelTTF *label = CCLabelTTF::create((const char*)data, "abc", 30);
    label->setPosition(ccp(visibleSize.width/2, visibleSize.height/2));

    addChild(label);

    然后开始怒跟代码,发现工程中使用了一个自定义控件,是为了实现一个富文本框的功能。所谓富文本框就是能显示各种颜色,能显示url,有的东西还能点的那种。但是这个东西的实现,其中有一步,是把一个utf8字符串拆开,拆成单个字符,把每个字符的纹理做出来,然后来拼图,拼成一个文本框。那么tab肯定会被拆成单个字符,最后发现就是在生成这个tab的纹理的时候,crash了。堆栈如下:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值