【发布时间】:2016-05-26 11:34:09
【问题描述】:
当我从 edittext 获取笑脸时,需要使其 Unicode 将其发送到服务器上。我使用以下代码获得了 Unicode:
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();
}
我得到输出为 '\ud83d\ude12' ,然后将其发送到服务器。在接收端,我从服务器得到了相同的结果,但是当将它放在 EditText 中时,它会以与上面输出相同的文本形式显示 Unicode,没有得到表情符号。它将如何解码它以在 EditText 中显示表情符号而不是 Unicode?
有人,有想法吗?
【问题讨论】:
-
您是否尝试过对生成的字符串进行编码?
-
是的,我通过使用问题讨论的 escapeJavaString 方法获得了高于 unicode 的信息。但无法从服务器再次解码或转换为笑脸
标签: android unicode decode emoji