0

我目前正在开发一个 Android 应用程序,该应用程序具有附加到内容的基于 Web 的管理系统。我想做的是在 Android 应用程序中显示内容,该应用程序通过 JSON 从 Web 检索信息。应用程序需要支持中文和英文。稍后,我想提供德语、法语、荷兰语和西班牙语。

我的问题来自中文。我有一个用英语完美运行的 PHP 和 MySQL 管理系统。一旦我在系统中添加中文字符,PHPMyAdmin 不会以我输入的相同方式显示字符。编码错误。从那时起,在 Android 中通过 JSON 检索所有内容也不会显示正确的字符。

这里有没有人可以指出我正确的方向?除了中文,一切正常。我没有中文编码的经验并搜索了互联网。我发现了一些我为 MySQL 尝试的东西,GB 编码数据库中的中文项目,但这似乎不起作用。

4

1 回答 1

0

我将我的 PHP 页面更改为 UTF 并提供了数据库记录uft8_unicode_ci。当我查看 PHPMyAdmin 时,记录显示和以前一样奇怪的字符,PHP 后端的一切看起来都很完美。当我查看 JSON 文件时,我也看到了奇怪的字符,但与 PHPMyAdmin 显示的字符不同。JSON (PHP) 保存为 UTF-8。

function loadInfo($id){
  if(is_numeric($id)){
    $locatieArray = array();
    $q = 'SELECT * FROM locaties WHERE id='.$id.'';
    $r = mysql_query($q);
    if($l = mysql_fetch_array($r)){
      $loc = array(
        'id' => utf8_encode($l['id']),
        'nameEN' => utf8_encode($l['nameEN']),
        'nameCH' => utf8_encode($l['nameCH']),
        'descEN' => utf8_encode($l['descEN']),
        'descCH' => utf8_encode($l['descCH']),
        'addEN' => utf8_encode($l['addEN']),
        'addCH' => utf8_encode($l['addCH']),
        'img' => utf8_encode($l['img']),
        'rate' => utf8_encode($l['rate']),
        'tel' => utf8_encode($l['tel']),
        'url' => utf8_encode($l['url'])
      );
    }
    $locatieArray[] = $loc;
  }
  // format array for json.
  $returnArray['locatie'] = $locatieArray;
  $json = json_encode($returnArray);
  return $json;
}

我生成 JSON 的方式是否有问题,或者我应该首先专注于使中文字符在 PHPMyAdmin 中工作?

于 2012-10-11T09:41:30.990 回答