PHP网络服务 - 结果在Android上无法显示

时间:2013-08-06 14:57:24

标签: php android utf-8

我有一个PHP Web服务,它控制我在JSON对象中提供响应的所有数据库函数 因为我正在使用希伯来语文本,所以我编写了一切到UTF-8的方式 - 但我所有的希伯来语文本都失去了它的空间..

这是我在Android中的http响应代码:

private JSONObject getApiResponse(HttpResponse response) throws Exception
{
    //get response status line
    StatusLine statusLine = response.getStatusLine();
    //if statue line is ok - read the response and return it
    if (statusLine.getStatusCode() == HttpStatus.SC_OK) {
        HttpEntity entity = response.getEntity();
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        entity.writeTo(out);
        out.close();                
        return new JSONObject(new String(out.toString().getBytes(),"UTF-8"));
    }
    return null;
}

如果是php:

,这是我的回应
    $api = new api();
    echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">";
    echo utf8_encode($api -> processRequest()); //processRequest() always returns JSON object
  • 所有数据表均采用UTF 8
  • PHP mysqli设置为UTF 8

这是服务响应的示例:

{"events":[
{"Event_Code":"10212208",
 "Event_Name":"\u05de\u05e1\u05d9\u05d1\u05ea \u05e9\u05e9        
               \u05e9\u05e0\u05d9\u05dd                             
               \u05dc\u05d1\u05d0\u05e8\u05e7\u05d9",
  "Place":"\u05d4\u05e2\u05e6\u05de\u05d0\u05d5\u05ea 84 \u05d7\u05d9\u05e4\u05d4",
  "Start_Time":"2013-08-22 21:00:00",
  "End_Time":"2013-08-23  05:00:00",
  "Facebook_Id":"741688125",
   "User_Name":"Name"}]}

任何想法?

1 个答案:

答案 0 :(得分:0)

O.k。找到了解决方案:

在阅读Marc B评论后,我重新检查了我的代码,发现我的一个文本视图在预设英文单词和希伯来语中的Web服务响应之间进行了组合..

这导致视图因某种原因而被破坏......