آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

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

abolfazlmt  9 سال پیش  9 سال پیش
0 0

با سلام من يك فايل 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  9 سال پیش
0 0

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

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

 

پاسخ به سوال 
Aref  9 سال پیش
0 0

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

 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  9 سال پیش
0 0

سلام سروري در كار نيست . برنامه 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  9 سال پیش
0 0

مشكل حل شد

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

 


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