首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android表情符号问题(将"\uD83D\uDE04“转换为0x1F604)

Android表情符号问题(将"\uD83D\uDE04“转换为0x1F604)
EN

Stack Overflow用户
提问于 2016-04-25 16:57:22
回答 4查看 10K关注 0票数 0

我可以通过这种方式how set emoji by unicode in android textview在文本视图中显示表情符号,但是如何将类似"uD83D\uDE04“的内容转换为代码点0x1F604("uD83D\uDE04”表示0x1F604)?

EN

回答 4

Stack Overflow用户

发布于 2017-04-24 19:05:57

做这样的事情。

将UTF-16转换为UTF-8

代码语言:javascript
复制
String text = new String("uD83D\uDE04".getBytes(), StandardCharsets.UTF_8);

获取代码点

代码语言:javascript
复制
int codepoint = text.codePointAt(0);

将其转换为Unicode

代码语言:javascript
复制
String yourUnicode="U+"+Integer.toHexString(codepoint)
票数 4
EN

Stack Overflow用户

发布于 2016-04-26 10:21:13

我找到一个way:java.lang.Character.toCodePoint(字符高,字符低)

代码语言:javascript
复制
int ss1 = Integer.parseInt("d83d", 16);
int ss2 = Integer.parseInt("de04", 16);

char chars = Character.toChars(ss1)[0];
char chars2 = Character.toChars(ss2)[0];

int codepoint = Character.toCodePoint(chars, chars2);
String emojiString = new String(Character.toChars(codepoint));
票数 1
EN

Stack Overflow用户

发布于 2016-04-26 14:45:49

多亏了@Henry,我找到了一个很容易获得emojiString的方法:

代码语言:javascript
复制
String ss1 = "d83d";
String ss2 = "de04";
int in1 = Integer.parseInt(ss1, 16);
int in2 = Integer.parseInt(ss2, 16);
String s1 = Character.toString((char)in1);//   http://stackoverflow.com/questions/5585919/creating-unicode-character-from-its-number
String s2 = Character.toString((char)in2);
String emojiString = s1+s2;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36835966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档