【发布时间】:2018-05-23 17:50:42
【问题描述】:
如果我直接输入 unicode 并使用以下方法将其转换为 String,我可以看到表情符号:
int intUnicode = 0x1F601;
public String getEmojiByUnicode(int unicode) {
return new String(Character.toChars(unicode));
}
但是当 unicode 值是 String 时,我无法理解如何转换:
String strUnicode = "0xf601";
如何将其转换为Integer,就像我直接做的那样。当我尝试使用Integer.parseInt(strUnicode) 时,编译器每次都会抛出错误。
InputStream is = assetManager.open("emoji_unicode.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
if (is != null){
try {
while ((data = reader.readLine()) != null){
sbuffer.append(data + "\n");
String j = sbuffer.toString().trim();
int k = Integer.parseInt(j,16);
String l = getEmojiByUnicode(k);
emoArray.add(l);
}
btn.setText(emoArray.get(5));
is.close();
}catch (IOException e){
e.printStackTrace();
}
}
这不是很难,我知道我很接近,但它仍然不会影响到我。任何帮助将不胜感激。 关注
【问题讨论】:
-
您开始使用的 unicode 字符串与您在第一个示例中生成的字符串不同。您应该查看UTF-16 编码,并了解它如何应用于the range you're working with 中的代码点。您的编译器正在抱怨,因为您提供的字符串不是有效的 UTF-16。
标签: java android string unicode int