如何从android中的emoji获取unicode?例如,我有一个文本“嗨(张开嘴笑脸)”我希望字符串为“hi \ ud83d”。我试图将其转换为字节,然后转换为字符串。但没有希望。
答案 0 :(得分:4)
你可以获得表情符号的unicode
StringEscapeUtils.escapeJava();
并将其解码回表情符号,您可以使用
StringEscapeUtils.unescapeJava();
答案 1 :(得分:2)
在我的情况下,所有消息在符号&之后消失。 +当我使用StringEscapeUtils.escapeJava()方法时。所以,这段代码适合我:
private String encodeMessage(String message) {
message = message.replaceAll("&", ":and:");
message = message.replaceAll("\\+", ":plus:");
return StringEscapeUtils.escapeJava(message);
}
private String decodeMessage(String message) {
message = message.replaceAll(":and:", "&");
message = message.replaceAll(":plus:", "+");
return StringEscapeUtils.unescapeJava(message);
}
答案 2 :(得分:1)
最后我得到了答案
我不知道我是在正确的道路上。任何知道更好答案的人都会受到欢迎
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 unicode = String.valueOf(c);
int code = (int)c;
if(!(code >= 0 && code <= 255)){
unicode = "\\\\u"+Integer.toHexString(c);
}
builder.append(unicode);
}
else{
builder.append(c);
}
}
Log.i("Unicode Block", builder.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return builder.toString();
}
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 unicode = String.valueOf(c);
int code = (int)c;
if(!(code >= 0 && code <= 255)){
unicode = "\\\\u"+Integer.toHexString(c);
}
builder.append(unicode);
}
else{
builder.append(c);
}
}
Log.i("Unicode Block", builder.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return builder.toString();
}