Xamarin截取/删除emoji表情bug解决方案

简介: 大家都知道,一个英文=1字节,一个汉字2字节,而一个emoji表情=4个字节,在有这三种混用的时候,比如app聊天界面,那么删除和截取便成了很头痛的事情。 问题描述 截取导致乱码,如下图:   解决方案 使用C#里面的Substring进行截取一个长度,截取完成之后判断截取的是否为乱码...

大家都知道,一个英文=1字节,一个汉字2字节,而一个emoji表情=4个字节,在有这三种混用的时候,比如app聊天界面,那么删除和截取便成了很头痛的事情。

问题描述

截取导致乱码,如下图:

 

解决方案

使用C#里面的Substring进行截取一个长度,截取完成之后判断截取的是否为乱码,如果是乱码,在进行二次截取处理,效果如图:

核心代码:

var result = txt.Substring(0, txt.Length - 1); //先执行删除
if (!string.IsNullOrEmpty(result))
{
    byte[] bt = System.Text.Encoding.Unicode.GetBytes(txt.Substring(txt.Length - 1));
    if (bt.Length == 2 && bt[0] == 253 && bt[1] == 255) //判断删除的最好一个“”,进行二次删除
    {
        result = result.Substring(0, result.Length - 1);
    }
}

 

img_fa0be433d68c8212b2b0b3b1a564ccb1.png
如果本文对你有所帮助,请打赏——1元就足够感动我:)
支付宝打赏 微信打赏
联系邮箱:intdb@qq.com
我的GitHub: https://github.com/vipstone
关注公众号: img_9bde0f31ac4a0eca10b1bd7414b78faf.png


作者: 王磊
出处: http://vipstone.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,请标明出处。

相关文章
|
8月前
|
人工智能 文字识别 JavaScript
一张截图生成iPhone应用、还能转成代码、创建网站,升级后谷歌Bard真成了
一张截图生成iPhone应用、还能转成代码、创建网站,升级后谷歌Bard真成了
技术篇:谷歌浏览器自动更新的踩坑指南(补))
技术篇:谷歌浏览器自动更新的踩坑指南(补))
|
JavaScript
如何解决 Camtasia9 导入 srt 字幕后出现乱码的问题
如何解决 Camtasia9 导入 srt 字幕后出现乱码的问题
如何解决 Camtasia9 导入 srt 字幕后出现乱码的问题
|
开发者
【求指教】开发者工具之按字符串搜索无效
开发者工具按字符串搜索,但是却不起作用。
【求指教】开发者工具之按字符串搜索无效
|
数据安全/隐私保护 计算机视觉 Python
我用Python导出了两万行字符,做成了动画...
前几天看了B站Up主何同学的视频,有了这个导出字符文档做成视频想法,比我想象中要费时间,卡点实在是太难了… 但是一旦脑子里有个想法,不实现出来浑身难受…
129 0
我用Python导出了两万行字符,做成了动画...
挑选了适合测试边界的汉字及截图
挑选了适合测试边界的汉字及截图
89 0
挑选了适合测试边界的汉字及截图
Mac系统快速获得文件位置的方法(带图解释)
Mac系统快速获得文件位置的方法(带图解释)
157 0
Mac系统快速获得文件位置的方法(带图解释)