前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WTF::String的一个小坑

WTF::String的一个小坑

作者头像
龙泉寺扫地僧
发布2019-02-20 11:05:59
6280
发布2019-02-20 11:05:59
举报
文章被收录于专栏:盟主来了盟主来了

在String是8bit的时候,调用insert等函数的时候,内部会调用StringImpl::copyChars<UCHAR>版本,把8bit转成uchar,但这个转换是直接:

    ALWAYS_INLINE static void copyChars(UChar* destination, const LChar* source, unsigned numCharacters)     {         for (unsigned i = 0; i < numCharacters; ++i)             destination[i] = source[i];     }

这样转!如果是utf8编码,这样转成uchar显然是不正确的。所以会导致调用insert后,utf8编码就不对了。其实这算是String的故意的,因为String如果是8bit,则应该是latin1编码。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年09月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档