我将文本从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作为第二个参数。

07-24 09:18