Java Emoji表情处理原则及报错java.nio.charset.MalformedInputException: Input length = 1处理

  • Post author:
  • Post category:java


Emoji表情处理(Java):

Emoji表情以String传递,占1-2个char,unicode编码(正则)为:[\ud83c\udc00\\-\ud83c\udfff]|[\ud83d\udc00\\-\ud83d\udfff]|[\u2600-\u27ff]

当我们使用字符串截取时,需要注意Emoji(占2个char时)不能只截取一半,否则会报错:java.nio.charset.MalformedInputException: Input length = 1

最好增加判断当Emoji占2char时,截取也应该是2位

以上内容为工作记录

补充:

java.nio.charset.MalformedInputException: Input length = 1  报错,是因为我们获取or截取到的Emoji表情只有一半;

比如\ud83c\udc00 只 截取到了\udc00,就会报以上错误

解决办法,如上图代码所示

以上解决方案是名字最后一个是Emoji表情,如果表情在第一个,则需要将将name.substring(1)注意不是0是1;我们是要截取2个字符串长度



版权声明:本文为qq_40707682原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。