繁体   English   中英

在MySQL中存储Android表情符号

[英]Storing Android Emoji in MySQL

我们将用户选择的表情符号存储在MySQL的文本主体中。 我们的列看起来像这样

`body` text CHARACTER SET utf8 COLLATE utf8_bin,

原始数据: <div id='mobile-question-style' style=\\"font-family: 'Helvetica Neue',Helvetica,Arial; color:#333333;\\">\?\?\?\?\?\?\?\?\?\?\?\?</div>

DB中的数据: <div id='mobile-question-style' style="font-family: 'Helvetica Neue',Helvetica,Arial; color:#333333;">????????????</div>

但是,如果从Rest API获取它,它看起来是正确的: "body":"<div id='mobile-question-style' style=\\"font-family: 'Helvetica Neue',Helvetica,Arial; color:#333333;\\">\?\?\?\?\?\?\?\?\?\?\?\?</div>", "body":"<div id='mobile-question-style' style=\\"font-family: 'Helvetica Neue',Helvetica,Arial; color:#333333;\\">\?\?\?\?\?\?\?\?\?\?\?\?</div>",

现在,当我更新问题时,使用Rest API会松开其编码并显示“ ????”

我更新后来自端点的数据: "body":"<div id='mobile-question-style' style=\\"font-family: 'Helvetica Neue',Helvetica,Arial; color:#333333;\\">????????????</div>", "body":"<div id='mobile-question-style' style=\\"font-family: 'Helvetica Neue',Helvetica,Arial; color:#333333;\\">????????????</div>",

更新车身时有特殊的逻辑,所以有人知道这里发生了什么吗?

要将表情符号存储到Mysql数据库中,请将要存储的字符串转换为编码的Base 64字符串。 在应用程序方面,您所要做的就是使用Base 64对该字符串进行解码。

编码

                byte[] data = editTextFieldWithEmojis.getText().toString().getBytes("UTF-8");
                base64String = Base64.encodeToString(data, Base64.DEFAULT);

解码

                byte[] data = Base64.decode(stringWithEmojis, Base64.DEFAULT);
                newStringWithEmojis = new String(data, "UTF-8");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM