Emojicons发送面部图标不起作用,发送数字图标工作

时间:2014-05-10 02:32:08

标签: android android-listview android-edittext xmpp emoji

当我发送emojis nums图标时,1,2,3,4,5 ....正确发送,但当我尝试发送表情符号图标时,微笑或其他人......不发送任何内容......

我的调试显示面部微笑,但不发送。为什么? 然后似乎没有清理缓冲区,当你重写时,活动被关闭,但是当使用数字图标emojis时却没有。

当我使用图标时,没有调用监听器,但是当我使用图标数字时,是的。

enter image description here

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:

enter image description here enter image description here我发送的数字正确,但笑脸不是。

http://apps.timwhitlock.info/emoji/tables/unicode

我有2个想法:1(orc)2(ASCII)

1 -

  

我认为我需要识别角色吗?没有图书馆OCR?

在我的调试器中,用图标显示[?],我认为这是因为没有正确识别字符,或者我错了?

2 -

  

或者可以是ASCII?

2 个答案:

答案 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发送微笑它对我有用