当我发送emojis nums图标时,1,2,3,4,5 ....正确发送,但当我尝试发送表情符号图标时,微笑或其他人......不发送任何内容......
我的调试显示面部微笑,但不发送。为什么? 然后似乎没有清理缓冲区,当你重写时,活动被关闭,但是当使用数字图标emojis时却没有。
当我使用图标时,没有调用监听器,但是当我使用图标数字时,是的。
public void sendMessageServer()throws XMPPException{
Message msg= new Message();
String tim = " "+time;
Chat chat = chatManager.createChat(CurrentUsernameClick+"@delive", messageListener);
if(message_list.getText().toString()!=null && message_list.length()>0){
String text = message_list.getText().toString();
msg.setBody(message_list.getText().toString() +tim);
chat.sendMessage(message_list.getText().toString() + tim);
addNewMessage(new Messages(msg.getBody(), true));
UserDataAccesObject.createMessage(id, id, msg.getBody(), usernameSession, CurrentUsernameClick, time);
message_list.setText("");
}
}
DEBUG SHOW:
我发送的数字正确,但笑脸不是。
http://apps.timwhitlock.info/emoji/tables/unicode
我有2个想法:1(orc)2(ASCII)
1 -
我认为我需要识别角色吗?没有图书馆OCR?
在我的调试器中,用图标显示[?],我认为这是因为没有正确识别字符,或者我错了?
2 -
或者可以是ASCII?
答案 0 :(得分:2)
尝试显示字符串中字符的十六进制值。您可能会发现第一个显示0x0031(DIGIT ONE)和0x20DE(COMBINING ENCLOSING SQUARE),这两个Unicode代码点组合在一起构成"1⃞"。第二个可以显示0xD83D 0xDE03,对于单个Unicode字符,它是UTF-16"" (U + 1F603露出脸部的笑脸)。接下来看一下实际上在线上写的内容。在十六进制中,第一个应该是:31E2839E,第二个应该是F09F9883,它们都是各自Unicode代码点的UTF-8编码。
有几个库存在处理高于U + FFFF的字符的错误。可能是你碰到了其中一个。如果是这种情况,您可能会看到像smAie输出的EDA0BDEDB883(十六进制)。这是无效 UTF-8,应该被符合RFC 6120的服务器拒绝。
答案 1 :(得分:2)
使用apt common util lib使用htmlescape发送微笑它对我有用