بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
json +كاراكتر فارسي+ حل شد
با سلام من يك فايل 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 پاسخ وجود دارد.

پاسخ به سوال
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 ذخيره بشه
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .