1

我有一个 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"}]}

任何的想法 ??

4

1 回答 1

0

好的找到了解决方案:

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

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

于 2013-08-06T15:17:24.310 回答