问题根本

截取不完整,原本完整的一段表情,被当做成2个字节截取了。当表情在截取边界的时候就会出现乱码。

解决思路

从按字节截取,改为按字符截取。

/**

* Emoji 添加截取工具类

* @param resourse 源字符串

* @param length 需要保留几个字,一个Emoji算一个字

* @return

*/

public static String subStr(@NonNull String resourse, int length){

char[] chars = resourse.toCharArray();

StringBuilder stringBuilder = new StringBuilder();

int sum = 0;

for (int i = 0; i < chars.length; i++) {

if (sum > length - 1) {

break;

}

if (isEmojiCharacter(chars[i])) {

stringBuilder.append(chars[i]);

stringBuilder.append(chars[i + 1]);

i = i + 1;

sum = sum + 1;

}else {

stringBuilder.append(chars[i]);

sum = sum + 1;

}

}

return stringBuilder.toString();

}

}

android+表情符号乱码,Android Emoji表情截取不完整,乱码相关推荐

  1. android手机自带表情符号,android系统自带Emoji表情与表情描述互相转换

    前言 Emoji表情几乎都是有表情描述的,如愤怒的表情会有[愤怒],这样的描述,这里就是举了个列子,至于是什么样的表现形势,这是可以自己定义的.那么这样,一个表情带一个表情描述的好处就是,当我们发送信 ...

  2. Android自带的emoji表情的使用

    原文链接:http://www.itwendao.com/article/detail/53941.html 什么是emoji表情 emoji表情是一种表情符号,在代码中它现在其实是一组遵循Unico ...

  3. mysql 显示表情符号_mysql 支持emoji 表情字符的解决方法。

    1.utf8 字符集最多3个字符,而emoji表情字符是unicode大字符集,需要4个字节表示,所以utf8无法表示. mysql要存储emoji字符,需要设成utf8mb4字符集,意思就是utf8 ...

  4. android编辑框禁用emoji表情和颜文字

    //完美解决输入框中不能输入的非法字符InputFilter inputFilter=new InputFilter() { Pattern pattern = Pattern.compile(&qu ...

  5. mysql表情符号变为_mysql Emoji表情字符集转换

    Java代码 java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for column 'name' at row 1 ...

  6. android表情符号使用,android评论输入表情符号

    将String字符串转换为UTF-8编码字符串 /** * 字符串换成UTF-8 * * @paramstr * @return*/ public static String stringToUtf8 ...

  7. php解析乱码字符串,PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]

    在PHP中,使substr函数截取字符串末位会出现乱码,因为中文UTF-8编码,每个汉字占3字节,而GB2312占2字节,英文占1字节,截取位不准确,造成断开的字符会把其后的..拉过来一起做一个字,所 ...

  8. ios 表情符号 键盘_iOS中表情键盘的完整实现方法详解

    前言 最近在公司做了个表情键盘的需求,这个需求的技术难度不会很大,比较偏向业务.但是要把用户体验做的好也是不容易的,其中有几个点需要特别注意.话不多说,下面开始正文(注:本文对应的Demo放在Gith ...

  9. android显示ios emoji表情符号,教程:在 Android 上也能用 iOS 新 Emoji 表情

    那是一个阳光明媚的周末,我惬意的躺在床上用着我的 Android 机刷微博,看着网上那些段子手,心情无比的舒畅.直到我看见这么一条: 瞬间百万头羊驼从我心头奔过,他到底发了些什么!?为什么我看不见!! ...

  10. iOStextField/textView在输入时限制emoji表情的输入

    https://www.jianshu.com/p/5227e6aab4d4 2017.02.27 13:08* 字数 146 阅读 6109评论 6喜欢 14 又遇到输入框输入表情的情况了,之前写了 ...

最新文章

  1. AngularJS 服务(Service)
  2. Boost:演示了black-scholes option 定价内核
  3. 灰度共生矩阵纹理特征提取_纹理特征提取
  4. 切换到 oracle的 hr用户下面练习
  5. 阿里达摩院拿什么救人?
  6. 个人三观的东西(1)
  7. 让一个从未接触过电脑的人测试浏览器
  8. 苹果新操作系统realityOS曝光
  9. mysql全局sce_cisco SCE 第二部分 SCE平台的安装配置
  10. 计算机VB中清除按钮,计算机vb程序设计时计算器清除的代码怎么写
  11. 银行按揭借款合同范本
  12. 适合小白的几个入门级Python ocr识别库
  13. python偏最小二乘法公式_最小二乘法及其python实现详解
  14. 苹果手机投屏到Windows
  15. Matlab GUI设计——文件读取和保存uigetfile,uiputfile
  16. H5API ---(Web存储-拖拽事件-通信-websocket-geolocation)
  17. 工程项目成本费用明细表_这么简单?成本费用明细表这么填就对了
  18. jAvA中deprecate,Deprecate in Java 1.6
  19. 10000条txt数据转为excel表格数据
  20. android中获取context的多种方法的区别(this,getbascontext(),getApplicationcontext())

热门文章

  1. 开启双重验证后无法登录Outlook桌面版的解决方法
  2. inprivate浏览是什么意思_inprivate浏览是什么意思,怎样关闭inprivate浏览器
  3. Spring Cloud 与 Dubbo 功能对比
  4. JavaScript(6):回调函数
  5. C#时间戳与日期时间DateTime格式互转
  6. VBA字典对象操作技巧
  7. 华为nova2s应用计算机,华为nova2s 如何打开多个应用 | 手游网游页游攻略大全
  8. ArcGIS 矢量编辑札记(一):Field Calculator 篇
  9. SMD和SMT的区别
  10. 银行卡查询银行卡类型查询及归属地查询