【问题标题】:Special characters between Android application and PHP scriptAndroid 应用程序和 PHP 脚本之间的特殊字符
【发布时间】:2012-04-03 18:26:20
【问题描述】:

我想从 PHP 页面获取一些文本到 Android 应用程序中。只要字符是 ASCII(最多 128 个)就没有问题,但是当我想显示特殊字符时,例如 'Ţ'、'Â'(所谓的 Latin-1 Supplement 和/或 Latin Extended-A - 请参阅Unicode Chart) 我的 Android 应用程序中出现了奇怪的符号 (�)。

问题是我的 Android 应用程序无法处理来自 Latin-1 Supplement 的字符(PHP 可以)但来自 Latin Extended-A 字符集的字符(PHP 不能)。我不知道这两种语言使用什么通用字符集,因为 Java 能够读取 PHP 的字符集不是,反之亦然。

我获取 PHP 页面内容的 Java 函数是这样的:

public static String GetData() {
    byte[] Bresult = null;
    HttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost("http://www.mypage.com/script.php");
    try {
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
        nameValuePairs.add(new BasicNameValuePair("var", "val"));
        post.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
        HttpResponse response = client.execute(post);
        StatusLine statusLine = response.getStatusLine();
        if(statusLine.getStatusCode() == HttpURLConnection.HTTP_OK){
            Bresult = EntityUtils.toByteArray(response.getEntity());
            Result = new String(Bresult, "UTF-8");
        }
    } catch (UnsupportedEncodingException e) {
        Log.w("MYAPP", "Unsupported Encoding Exception (" + e.getMessage() + ")");
    } catch (Exception e) {
        Log.w("MYAPP", "Exception (" + e.getMessage() + ") ocurred");
    }
    return Result;
}

所以,这段代码给了我script.php 页面的内容。如果接收到的文本字符是从 0 到 128 就没有问题。在其他地方,我得到了奇怪的字符。

现在,这是我的 PHP 代码:

<?php
    header("Content-Type: text/plain;charset=utf-8");
    echo "ÂŞÂĂĒ";
?>

我还有一个 C++ 应用程序,它可以正确读取文本。我一整天都在尝试很多方法,但我就是不明白。谁,在哪里,为什么? 谢谢。

【问题讨论】:

标签: php android special-characters


【解决方案1】:

你从哪里得到数据?,如果是通过 mysql 数据库,你必须像这样指定 UTF8

mysql_query("SET NAMES 'utf8'");

【讨论】:

  • 好的。爪哇。当我从数据库中获取文本时,我会记住这一点。现在我只想从文本文件中获取它。谢谢
  • 确保文本文件中的编码也是如此。一些文本编辑器可让您查看/设置编码。另外,我建议这可能是天真的,您是否考虑过用 UTF-8 编码所有内容? Android 使用 UTF-8 (stackoverflow.com/questions/4564688/…),并且有大量资源可用于使用 PHP 处理 UTF-8...
猜你喜欢
  • 2015-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多