【发布时间】:2017-08-16 07:38:57
【问题描述】:
我正在尝试在我的 EditText 字段中使用表情符号。但问题是,当我尝试将表情符号转换为六进制时,值不正确。
我正在使用此函数在 Hexa 中获取 emoji 值。
public static String escapeJavaString(String st){
StringBuilder builder = new StringBuilder();
try {
for (int i = 0; i < st.length(); i++) {
char c = st.charAt(i);
if(!Character.isLetterOrDigit(c) && !Character.isSpaceChar(c)&& !Character.isWhitespace(c) ){
String hexa= String.valueOf(c);
int code = (int)c;
if(!(code >= 0 && code <= 255)){
hexa= "0x"+Integer.toHexString(c);
}
builder.append(unicode);
}
else{
builder.append(c);
}
}
Log.i(TAG, builder.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return builder.toString();
}
我尝试添加笑脸,它给了我价值0xd83d 这在下面的功能中不起作用。
这是将 Hexa 值转换为 Emoji 的功能,此功能运行良好,我尝试提供手动 Hexa 值。
// 0xd83d this value is get from above function but not work
// in this function
//String hexaCode = "0xd83d"; // not work
String hexaCode = "0x1F60A"; // work
int emoji= Integer.parseInt(hexaCode.substring(2), 16);
reurn new String(Character.toChars(emoji));
你能告诉我我做错了什么吗?请不要向我推荐任何表情符号库。
【问题讨论】:
-
我以为你在问图书馆,请参考这里的讨论stackoverflow.com/questions/45453202/…
标签: android