问题
Is it possible to retrieve text written in telugu from the server for use in application. I have used the below format for Json. It is giving me error in some symbols at the logcat of the avd. If not which would be suitable for getting such kind of text.
{
"contacts": [
{
"id": "c200",
"name": "అశ్విని",
"email": "అశ్విని@అశ్విని.అశ్విని",
"address": "అశ్విని",
"gender" : "అశ్విని",
"phone": {
"mobile": "అశ్విని",
"home": "అశ్విని",
"office": " రేవతి"
}
},
{
"id": "c201",
"name": "అశ్విని ram",
"email": "అశ్విని@అశ్విని.అశ్విని",
"address": "అశ్విని",
"gender" : "అశ్విని",
"phone": {
"mobile": "అశ్విని",
"home": "అశ్విని",
"office": "అశ్విని"
}
}
]
}
The following is the code i used to retrieve data
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;
}
}
回答1:
You need to use NTR.TTF font in the assets folder and should change the line below
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"), 8000);
回答2:
JSON content uses UTF-8 as default character set (see the RFC 4627, chapter 3). You have to make sure that the server returns a response with the right encoding AND to explicitly use the UTF-8 encoding for the stream reader:
BufferedReader r = new BufferedReader(new InputStreamReader(instream, "UTF-8"), 8000);
来源:https://stackoverflow.com/questions/13158052/telugu-text-using-json