بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

json +كاراكتر فارسي+ حل شد

مدیریت گفتگو
abolfazlmt 10 سال پیش
آخرین تغییر: 10 سال پیش

با سلام من يك فايل jsonدارم كه وقتي از روش مي خوانم در ليست ويو نشان مي دهم ؟مي زند كاراكتر فارسي با انگليسي مشكلي ندارد

يكم تو نت گشتم ابن مدل كه فارسي بود پيدا كردم كه در ست عمل مي كند ولي اون متغير رشته اي مال من از فايل مي خوانم 

http://stackoverflow.com/questions/17916468/json-parsing-in-android-2

String jsonString =" {\"teriffs\": [{\"name\":\"برنز\",\"id\":\"1000\",\"prices\":\"3;400000-12;600000\"},{\"name\":\"برنز\",\"id\":\"1000
 
\",\"prices\":\"3;400000-12;600000\"},{\"name\":\"نق
 
ه ای\",\"id\":\"1002\",\"prices\":\"3;700000-12;1000000\"},{\"name\":\"نقره ای\",\"id\":\"1002\",\"prices\":\"3;700000-12;1000000\"}]}";
try{
String UTF8String =newString(jsonString.getBytes("UTF-8"));
JSONObjectobject=newJSONObject(UTF8String);
JSONArray array =object.getJSONArray("teriffs");
for(int i=0;i<array.length();i++)
{
JSONObject jsonObject = array.getJSONObject(i);
Log.d("ID", jsonObject.getString("id"));
Log.d("NAME", jsonObject.getString("name"));
Log.d("PRICES", jsonObject.getString("prices"));}}
catch(JSONException e2){// TODO Auto-generated catch block e2.printStackTrace();}
catch(UnsupportedEncodingException e){// TODO Auto-generated catch block e.printStackTrace();}



حالا كد خودم

try { InputStream is = getAssets().open("file.json"); int size = is.available(); byte[] buffer = new byte[size]; is.read(buffer); is.close(); // new String(jsonString.getBytes("UTF-8")); json = new String(buffer, "UTF-8"); } catch (IOException ex) { ex.printStackTrace(); }
////////////////////
JSONArray contacts = null; try { //JSONObject jsonObj = new JSONObject(json); String UTF8String; try { UTF8String = new String(json.getBytes("UTF-8")); JSONObject jsonObj = new JSONObject(UTF8String); contacts = jsonObj.getJSONArray("ResearchInstitute"); Log.i("jsoncontacts", "" + UTF8String); // looping through All Contacts for (int i = 0; i < contacts.length(); i++) { note = new StructTask(); JSONObject c = contacts.getJSONObject(i); String name = c.getString("Name"); note.id = c.getLong("ID"); note.title = name; note.dis = c.getString("Discription"); tasks.add(note); Log.d("jsonname", "" + name); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); }

نظرات

پاسخ‌ها 4

abolfazlmt 10 سال پیش

  String name = new String(c.getString("Name").getBytes("ISO-8859-1"), "UTF-8");    خروجيش??????????

اين كد زدم يكم مدل خروجي فرق كرد 

 

نظرات

Aref 10 سال پیش

سمت سرور رو درست ننوشتین 

 function connectToDatabase(){
    $conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD,DB_NAME);  
    mysqli_set_charset($conn, 'utf8');
    return $conn;
}

و دقت کنین که header رو هم به صورت زیر اضافه کرده باشین

 header('Content-Type: application/json; charset=utf-8');

نظرات

abolfazlmt 10 سال پیش

سلام سروري در كار نيست . برنامه local سمت سرور نيست . بانكش json 

 InputStream is = getAssets().open("file.json");

            int size = is.available();
            byte[] buffer = new byte[size];
            is.read(buffer);
            is.close();
            // new String(jsonString.getBytes("UTF-8"));
            json = new String(buffer, "UTF-8");

نظرات

abolfazlmt 10 سال پیش

مشكل حل شد

بايد موقع ذخيره json بايد encoding   در uft-8 ذخيره بشه

 

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .