【问题标题】:PHP - Sending a POST request from android turns emojis into question marksPHP - 从 android 发送 POST 请求会将表情符号变成问号
【发布时间】:2014-12-28 04:09:37
【问题描述】:

我有一个程序可以做到这一点:

  • Java 中的 Android 应用接收输入(在本例中为表情符号、UTF8)

  • 此字符串通过 POST 发送到 PHP 脚本

  • PHP 将所有表情符号转换为问号 (?)

我可以看出,使用 Android Logcat,java 并没有破坏它,它肯定是 PHP

PHP 配置正确,因为当我在没有发布请求的情况下运行测试网页时,它只会回显一些表情符号(完全相同),它可以正常工作

【问题讨论】:

  • 您在哪里查看看起来像问号的输出?
  • 可能是完整的 UTF-8 代码仍然存在,但是您用来查看数据的任何内容都没有显示 UTF-8 字符。
  • @DigitalChris 我正在使用 eclipse logcat 查看 POST 请求的结果(用于测试目的)。当我使用 Log.d() 查看它们时,logcat 确实正确显示了表情符号,所以它不是查看器,它肯定是 PHP
  • 我使用这个线程stackoverflow.com/questions/5270591/…的解决方案解决了这个问题

标签: php android post utf-8 emoji


【解决方案1】:

我认为您最好的解决方案是为 PHP 使用 Emoji。它为您处理所有转换。在以下位置获取副本:

http://code.iamcal.com/php/emoji/

这是一个代码示例:

<?php
    include('emoji.php');


    # browser sniffing tells us that a docomo phone
    # submitted this text

    $clean_text = emoji_docomo_to_unified($_POST[message]);


    ...


    # now we want to show it in a desktop browser

    $html = emoji_unified_to_html($clean_text);
?>

【讨论】:

    【解决方案2】:

    我们将 android 与 php 服务器连接起来。然后我们使用 HTTPClient 发送和检索数据。 HTTPPost 指定我们的请求方法是 post。响应存储在 HTTPResponse 中。 “URL”是存在 JSON 的实际链接。

    然后我们使用 inputstream 将数据转换为字节。我们需要将字节流转换为字符流。之后我们在 StringBuilder-from 的帮助下构建 String:

    http://techlovejump.com/connect-android-with-php-mysql-and-json/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-09
      • 2014-11-06
      • 1970-01-01
      • 2020-01-04
      • 1970-01-01
      • 2020-09-10
      • 1970-01-01
      相关资源
      最近更新 更多