繁体   English   中英

如何在应用程序中添加表情符号支持以在Android中发布评论?

[英]How to add emoji support in app for posting comments in Android?

我有一个应用程序,用户可以在其中发布产品/项目的评论,并将其上传到我的服务器。 然后,该应用程序加载已从MySql数据库发布的评论的列表视图。 默认情况下,由于设备的键盘,用户可以在他们的评论帖子中包含表情符号,但是当应用刷新评论列表时,表情符号显示为????。 如何添加对表情符号的支持?

更新

我正在使用标准的TextView显示评论。 发布评论是标准的EditTextView。 根据下面的答案,我在logcat中包含了edittext视图中的文本,并且选择的任何表情符号都显示为^。

好。 我想出了如何使其工作。 每个用户6526330的链接。 我首先必须添加库commons-lang-2.5.jar并将以下内容用于EditText和TextView。

//This converted the emoji code to utf8md4 for the server
String cmttxt = newCmnt.getText().toString().trim();
String toServerUnicodeEncoded = StringEscapeUtils.escapeJava(cmttxt);

//This converted the server response to properly show the emoji
String serverResponse = "Some string from server with emoji code embedded";
String fromServerUnicodeDecoded = StringEscapeUtils.unescapeJava(serverResponse);

但这还不足以使事情起作用,因为标准的EditText和TextView不知道如何翻译表情符号代码。 所以我在这里找到了Emojicon库。

通过使用该库中的TextView和EditText,我可以正确地发布和接收带有嵌入式表情符号的文本。

我还必须将数据库的字符集更改为utf8md4_unicode_ci,以使数据库正常显示。

因为我使用PDO发布评论,所以我不得不更改此行:

$db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options);

$db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8mb4", $username, $password, $options);

因此,对于可能会看到此情况并希望在其应用程序中支持表情符号的其他人,您需要遵循以下清单:

  1. 通过单击链接,确保您的数据库排序规则/字符集为utf8mb4。
  2. 此处将commons-lang-2.5库添加到您的项目中。
  3. 此处将Emojicon库添加到您的项目中。
  4. 将库中的TextView和EditText视图添加到它们各自的布局中。
  5. 请按照上面发布的代码将表情符号文本转换为utf8mb4编码。
  6. 请享用!

希望这对其他人有帮助。 感谢大家的帮助。

我没有足够的声誉,所以我必须回答而不是发表评论。

您能否分享一些有关如何显示表情符号的其他信息? 它是否显示在TextView中? 另外,您要显示的字符串的值是多少,您可以通过在将代码中设置字符串的值记录下来然后在logcat中查看该字符串的值来找到它。

当您浏览此帖子时 ,也许它可以为您提供帮助? 如果是这样,请告诉我们!

暂无
暂无

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

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