跨平台编码和解码表情符号
Encoding and decoding emoji for cross plateforms
我目前正在开发 android 即时通讯应用程序。它运行良好。我成功地将消息从一个手机发送到另一个手机,从手机发送到 Web application.i 正在使用库编译'com.rockerhieu.emojicon:library:1.3.3' 处理表情符号。使用这个库,我添加了一个表情符号面板。它可以很好地将表情符号从一个手机发送到另一个手机。但是网络应用程序没有收到我发送的表情符号。
截图
正如您在屏幕截图中看到的,Web 应用程序中显示了不同的符号。
移动应用程序的屏幕截图
这是主要问题,我没有在网络应用程序中获取我通过移动应用程序发送的内容。
ChatActivity.java
public class ChatActivity extends FragmentActivity implements
EmojiconGridFragment.OnEmojiconClickedListener, EmojiconsFragment.OnEmojiconBackspaceClickedListener {
EmojiconEditText edMessage = (EmojiconEditText) findViewById(R.id.edtMessage);
@Override
public void onEmojiconBackspaceClicked(View view) {
EmojiconsFragment.backspace(edMessage);
}
@Override
public void onEmojiconClicked(Emojicon emojicon) {
EmojiconsFragment.input(edMessage, emojicon);
}
}
请帮我解决这个问题。
通过使用 edMessage.getText().toString().trim()
你可以得到字符串
将 String 转换为 Unicode
public static String unicodeEscaped(char ch) {
if (ch < 0x10) {
return "\u000" + Integer.toHexString(ch);
} else if (ch < 0x100) {
return "\u00" + Integer.toHexString(ch);
} else if (ch < 0x1000) {
return "\u0" + Integer.toHexString(ch);
}
return "\u" + Integer.toHexString(ch);
}
String unicode = "";
String text = _msgEditText.getText().toString().trim();
for (int i = 0; i < text.length(); i++) {
unicode = unicode+Constant.unicodeEscaped(text.charAt(i));
}
text = unicode;
解码可以使用common-lang.jar文件。
请参考linkClick here
_msgString = StringEscapeUtils.unescapeJava(_msgString); // for decoding unicode to string or for similar language
我目前正在开发 android 即时通讯应用程序。它运行良好。我成功地将消息从一个手机发送到另一个手机,从手机发送到 Web application.i 正在使用库编译'com.rockerhieu.emojicon:library:1.3.3' 处理表情符号。使用这个库,我添加了一个表情符号面板。它可以很好地将表情符号从一个手机发送到另一个手机。但是网络应用程序没有收到我发送的表情符号。
截图
正如您在屏幕截图中看到的,Web 应用程序中显示了不同的符号。
移动应用程序的屏幕截图
这是主要问题,我没有在网络应用程序中获取我通过移动应用程序发送的内容。
ChatActivity.java
public class ChatActivity extends FragmentActivity implements
EmojiconGridFragment.OnEmojiconClickedListener, EmojiconsFragment.OnEmojiconBackspaceClickedListener {
EmojiconEditText edMessage = (EmojiconEditText) findViewById(R.id.edtMessage);
@Override
public void onEmojiconBackspaceClicked(View view) {
EmojiconsFragment.backspace(edMessage);
}
@Override
public void onEmojiconClicked(Emojicon emojicon) {
EmojiconsFragment.input(edMessage, emojicon);
}
}
请帮我解决这个问题。
通过使用 edMessage.getText().toString().trim()
你可以得到字符串
将 String 转换为 Unicode
public static String unicodeEscaped(char ch) {
if (ch < 0x10) {
return "\u000" + Integer.toHexString(ch);
} else if (ch < 0x100) {
return "\u00" + Integer.toHexString(ch);
} else if (ch < 0x1000) {
return "\u0" + Integer.toHexString(ch);
}
return "\u" + Integer.toHexString(ch);
}
String unicode = "";
String text = _msgEditText.getText().toString().trim();
for (int i = 0; i < text.length(); i++) {
unicode = unicode+Constant.unicodeEscaped(text.charAt(i));
}
text = unicode;
解码可以使用common-lang.jar文件。
请参考linkClick here
_msgString = StringEscapeUtils.unescapeJava(_msgString); // for decoding unicode to string or for similar language