2015-08-09 3 views
1

Я использую класс JSON в своем приложении. Но у меня проблема с арабским алфавитом. Всякий раз, когда я пытаюсь использовать WRITE в своей базе данных, я получаю ?????? для арабского. Для английского языка это не проблема. У меня есть setchar в моем php для совместимости с utf-8, а также в базе данных, это utf-general-ci. Но, я думаю, проблема связана с моим классом JSON. Вот мой класс JSON.Класс JSON не может обрабатывать арабские слова

public class JSONParser { 

public JSONObject makeHttpRequest(String url, List<NameValuePair> pairs) 
{ 
    try 
    { 
     HttpParams httpParams = new BasicHttpParams(); 

     int timeoutConnection = 10000; 
     HttpConnectionParams.setConnectionTimeout(httpParams, timeoutConnection); 

     int timeoutSocket = 10000; 
     HttpConnectionParams.setConnectionTimeout(httpParams, timeoutSocket); 

     DefaultHttpClient defaultHttpClient = new DefaultHttpClient(httpParams); 
     HttpPost httpPost = new HttpPost(url); 

     if (pairs != null) 
     { 
      httpPost.setEntity(new UrlEncodedFormEntity(pairs)); 
     } 

     HttpResponse httpResponse = defaultHttpClient.execute(httpPost); 
     HttpEntity httpEntity = httpResponse.getEntity(); 

     if (httpEntity != null) 
     { 
      String ret = EntityUtils.toString(httpEntity); 
      return new JSONObject(ret.substring(ret.indexOf("{"), ret.lastIndexOf("}") + 1)); 
     } 
    } 
    catch (Exception ex) 
    { 

    } 
    return null; 
} 
} 

Я считаю, что использует шифрование по умолчанию. Как я могу исправить это как UTF-8. Ну, в строке с использованием http.Post.setEntity я попытался сделать «UTF-8» еще одним параметром метода setEntity. Это дает мне ошибку. Итак, есть ли у вас какие-либо предложения ???? Спасибо заранее

ответ

1

попробуйте заменить

String ret = EntityUtils.toString(httpEntity); 

с этой линией

String ret = EntityUtils.toString(entity, HTTP.UTF_8); 

может быть, его не JSON, но HttpClient

+0

Нет, это не сработало – ama989

Смежные вопросы