【问题标题】:Android ASCII Emoticons and PHPAndroid ASCII 表情符号和 PHP
【发布时间】:2014-08-05 15:57:16
【问题描述】:

我有一个适用于 Android、iOS 和 Windows Phone 的应用程序,其中包含聊天功能。我创建了为应用程序提供服务的 PHP Web 服务。我在谷歌和这里搜索,但没有找到解决方案。

我正在尝试在聊天中使用 Android 的原生键盘表情符号。每次插入表情符号时,都会使用一个 ASCII 特殊字符来表示它。我使用htmlentities($char) 转义特殊字符,将它们保存在MySQL 中,使用html_entity_decode($char) 解码并作为JSON 响应返回。

问题是:有些表情符号可以编码,有些则不能。例如,上图中的第一个微笑由字符表示,其代码为☺。但是获取不到天使的微笑码,htmlentities($char)返回一个空字符串。

我用我的 Android 尝试了在线 ASCII Code Tool,我得到了天使表情符号的代码 55357。然后我尝试直接在MySQL中插入代码�,但是html_entity_decode($char)返回相同的字符串,没有解码。最后,我用� 字符创建了一个HTML 页面,但是Android 和桌面浏览器都显示一个未知字符

知道发生了什么吗?我做对了吗?

【问题讨论】:

  • 它们是非标准字符,htmlentities() 只处理 html 规范中定义的“标准”字符。
  • 那么,我怎样才能在 MySQL 中存储呢? MySQL 也无法处理它们。 HTML 编码/解码是一个选项。
  • base64 可能是更适合存储数据的类型
  • 好吧,我应该编码base64来存储它们并在检索它们之后解码base64吗?
  • mysql 不在乎它们是实体。如果你使用blob-type 字段,mysql 将只是一个存储系统。一些“二进制”文本中的东西,检索它,mysql不会改变任何事情。无需编码

标签: php android mysql ascii


【解决方案1】:

您可以在您的 Android 应用程序中用代码替换它们,这样 PHP 就不需要处理它们了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 2017-04-19
    • 2018-07-01
    • 1970-01-01
    • 2020-12-15
    • 2014-04-06
    相关资源
    最近更新 更多