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/
本文版权归作者和博客园共有,欢迎转载,请标明出处。

相关文章
|
5月前
webstorm【实用教程】代码自动格式,格式化时清除空行,修改使用代码模板
webstorm【实用教程】代码自动格式,格式化时清除空行,修改使用代码模板
456 2
|
7月前
|
XML JavaScript 前端开发
使用 doscify 将文章写成文档一般丝滑
使用 doscify 将文章写成文档一般丝滑
137 0
|
前端开发 JavaScript 定位技术
iOS 逆向编程(十六)DZMCycript 脚本使用(封装了常用的快捷函数,后续会继续添加)
iOS 逆向编程(十六)DZMCycript 脚本使用(封装了常用的快捷函数,后续会继续添加)
140 0
|
数据安全/隐私保护 计算机视觉 Python
我用Python导出了两万行字符,做成了动画...
前几天看了B站Up主何同学的视频,有了这个导出字符文档做成视频想法,比我想象中要费时间,卡点实在是太难了… 但是一旦脑子里有个想法,不实现出来浑身难受…
153 0
我用Python导出了两万行字符,做成了动画...
|
容器
第125天:移动端-空白字符问题解决办法
1、当我们想使用百分比来进行两个盒子的并排 代码: 1 DOCTYPE html> 2 3 4 5 6 html, 7 body { 8 margin: 0; 9 padding: 0; 10 } 11 12 .
1077 0
|
存储 Java
《Java编码指南:编写安全可靠程序的75条建议(英文版)》—— 第6章 使用字符串来交流 6.1 在字符串中存储文本
Java程序将字符串作为与用户交流的主要方式。字符串是一组文本,可以包含字母、数字、标点符号及其他字符。本章将介绍如何在Java程序中使用字符串。
1337 0