ذخیره اشتباه اطلاعات (علامت سوال) در Cache (حل نشده)
سلام و خسته نباشید خدمت دوستان عزیز؛
من در پروژه وب سرویس ماژول استاد، متن فارسی رو از سمت سرور به سمت اندروید میفرستم و در اندروید داده ها رو در کش ذخیره میکنم. متن های فارسی توسط Json Encode به کد تبدیل میشن؛ مثل: /u0642/
و من در php هم مشخص کردم که اطلاعات رو با روش UTF-8 ارسال کنه.
وقتی هم که کد وارد اندروید میشه (آنلاین نمایش میدم) متن ها همه صحیح به زبان فارسی نمایش داده میشن.(در داخل logcat و خود برنامه)
اما وقتی که از کش اطلاعات رو دریافت میکنم، برنامه کرش میکنه و وقتی اطلاعات رو از logcat میخونم، همه بصورت علامت سوال درمیاد؛ پس با این توضیحات معلوم میشه که اشکال از ذخیره سازی در کش هست.
باید چکار کنم تا متن ها درست داخل کش ذخیره بشن؟
این کدهای کلاس وب سرویس منه
public class webservice {
InputStream is;
public static String readUrl(String url, ArrayList<NameValuePair> params) {
try {
DefaultHttpClient client = new DefaultHttpClient();
HttpPost method = new HttpPost(url);
if (params != null)
{
method.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));//اینجا واسه ارسال فارسی به سمت سرور
}
HttpResponse response = client.execute(method);
InputStream inputstrim = response.getEntity().getContent();
String result = convertInputStrimToString(inputstrim);
return result;
}
catch (ClientProtocolException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
return null;
}
public static String convertInputStrimToString(InputStream inputStrim) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStrim, "iso-8859-1"), 8);//اینجا هم واسه دریافت ولی فکر نکم نیاز باشه
StringBuilder builder = new StringBuilder();
String line = "";
while ((line = reader.readLine()) != null) {
builder.append(line);
}
return builder.toString();
}
catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
این چند خط را هم داخل صفحه phpاضافه کردم
<?php
header('Content-Type: text/html; charset=utf-8');
$connection = mysqli_connect("localhost", "", "", "");
mysqli_query($connection,"SET NAMES 'utf8'");
mysqli_set_charset($connection,"UTF8");
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .