我将文本从EditText字段发送到服务器,并将其存储在Mysql数据库中。它工作正常。但是,当我尝试发送表情符号时,它只会发送文本。所以我用谷歌搜索,发现唯一的解决方案是转换EditText值。
我尝试了以下方法:
String toServer = EditText.getText().getString();
String toServerUnicodeEncoded = StringEscapeUtils.escapeJava(toServer);
现在,表情符号具有Java Unicode格式。几乎...
例如。它应该是“ \ u2764”,但是在我的服务器上它却是“ u2764”。因此,它不会发送“ \”。我试图将字符串“ \ u2764”发送到服务器。有用。
是否有人可以告诉我为什么它没有发送正确的“ \ u2764”并删除“ \” ...
最佳答案
许多产品使用反斜杠\
作为“转义”字符。他们对角色采取行动,否则将其丢弃。
如果产品不执行任何操作,则很可能会将其丢弃。
某些产品会将\u2764
视为沉重的黑心(❤
),用3个字节的UTF-8字符用十六进制E29DA4
替换6个字节。
其他人会说:“嗯,反斜杠后我对u
不做任何事情,所以我只会抛开反斜杠。”这会将6个字符\u2764
转换为5个字符u2764
。\u2764
来自哪里?如果来自PHP json_encode
,则将JSON_UNESCAPED_UNICODE
作为第二个参数。