【问题标题】:telugu text using json使用 json 的泰卢固语文本
【发布时间】:2012-10-31 12:32:46
【问题描述】:

是否可以从服务器检索以泰卢固语编写的文本以用于应用程序。我对 Json 使用了以下格式。它在 avd 的 logcat 中给我一些符号错误。如果不是,那将适合获取此类文本。

{
"contacts": [
    {
            "id": "c200",
            "name": "అశ్విని",
            "email": "అశ్విని@అశ్విని.అశ్విని",
            "address": "అశ్విని",
            "gender" : "అశ్విని",
            "phone": {
                "mobile": "అశ్విని",
                "home": "అశ్విని",
                "office": " రేవతి"
            }
    },
    {
            "id": "c201",
            "name": "అశ్విని ram",
            "email": "అశ్విని@అశ్విని.అశ్విని",
            "address": "అశ్విని",
            "gender" : "అశ్విని",
            "phone": {
                "mobile": "అశ్విని",
                "home": "అశ్విని",
                "office": "అశ్విని"
            }
    }
]
} 

以下是我用来检索数据的代码

public class JSONParser {

static InputStream is = null;
static JSONObject jObj = null;
static String json = "";

// constructor
public JSONParser() {

}

public JSONObject getJSONFromUrl(String url) {

    // Making HTTP request
    try {
        // defaultHttpClient
        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);

        HttpResponse httpResponse = httpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        is = httpEntity.getContent();           

    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while ((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        json = sb.toString();
    } catch (Exception e) {
        Log.e("Buffer Error", "Error converting result " + e.toString());
    }

    // try parse the string to a JSON object
    try {
        jObj = new JSONObject(json);
    } catch (JSONException e) {
        Log.e("JSON Parser", "Error parsing data " + e.toString());
    }

    // return JSON String
    return jObj;

}
}

【问题讨论】:

  • 您遇到的错误是什么?
  • 解析数据时出错 org.json.JSONException:JSONObject 文本必须以 ÿþ 的字符 1 处的 '{' {�� 10-31 17:29:11.821: E/JSON Parser(459) : �� 10-31 17:29:11.821: E/JSON Parser(459): �� �� �� �� ��"��c��o��n��t��a��c� �t��s��"��:�� �� [�� 10-31 17:29:11.821: E/JSON Parser(459): �� 这是我收到的错误的一部分
  • @SRINIVASRAO 你能粘贴你在服务器端用于检索数据的代码吗,因为我需要在我的脚本中实现同样的东西
  • @AnswerMe 我没找到你
  • 我正在尝试从服务器检索泰卢固语,就像您在 android ia m 中使用相同的代码但服务器端出现一些错误,这就是我询问服务器端代码的原因

标签: android json translation android-fonts


【解决方案1】:

您需要在 assets 文件夹中使用 NTR.TTF 字体,并应更改下面的行

BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8000);

【讨论】:

    【解决方案2】:

    JSON 内容使用 UTF-8 作为默认字符集(参见 RFC 4627,第 3 章)。您必须确保服务器返回具有正确编码的响应,并为流阅读器显式使用 UTF-8 编码:

    BufferedReader r = new BufferedReader(new InputStreamReader(instream, "UTF-8"), 8000);
    

    【讨论】:

    • 我使用 UTF-16 而不是 UTF-8。我可以在 logcat 中看到文本。进入模拟器时,我得到矩形框作为输出。
    • 进入设备时会强制关闭。
    • 在发送前将您的 UTF16 文本转换为 UTF8。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    相关资源
    最近更新 更多