دوست عزیز من اینو هم گذاشته بودم اینجا ولی کار نمی کنه. بازم علامت سوال تحویلم میده.
بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
علامت سوال شدن نوشته های فارسی در سرور.(حل شد)
مدیریت گفتگو
آخرین تغییر: 9 سال پیش
با سلام :
من چطور می تونم فارسی رو در ListView که در اندروید گذاشتم از سمت سرور که می خونه درست نشون بدم؟ در لیست ویو کلا علامت سوال میاد.
پاسخها 4
شما باید زمانی که از سرور اطلاعات را می خوانید با فرمت utf8 بخوانید.
String data = null;
private ArrayList<NameValuePair> inputArguments;
inputArguments = new ArrayList<NameValuePair>();
// add parameters for website query string
inputArguments.add(new BasicNameValuePair("parameter", "value"));
HttpParams params = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(params, connectionTimeout);
HttpConnectionParams.setSoTimeout(params, socketTimeout);
HttpClient client = new DefaultHttpClient(params);
HttpPost request = new HttpPost(url);
request.setEntity(new UrlEncodedFormEntity(inputArguments, "UTF-8"));
HttpResponse httpResponse = (HttpResponse) client.execute(request);
data = streamToString(httpResponse.getEntity().getContent());
نظرات
package fa2.ir.roofing.WaterproofingMembranes;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
public class Webservice {
public static String readUrl(String url, ArrayList<NameValuePair> params) {
try {
HttpClient client = new DefaultHttpClient();
HttpPost method = new HttpPost(url);
if (params != null) {
method.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
}
HttpResponse response = client.execute(method);
InputStream inputStream = response.getEntity().getContent();
String result = convertInputStreamToString(inputStream);
return result;
}
catch (ClientProtocolException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
return null;
}
private static String convertInputStreamToString(InputStream inputStream) {
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder builder = new StringBuilder();
String line = "";
while ((line = reader.readLine()) != null) {
builder.append(line);
}
return builder.toString();
}
catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
نظرات
دوست عزیز من اینو هم گذاشته بودم اینجا ولی کار نمی کنه. بازم علامت سوال تحویلم میده.
شما توی مرورگر url را بزن ببین فارسی خروجی می گیری ؟
آخ نه این چک نکرده بودم. باید چطوری درستش کنم ؟
مرحله بعد ببین توی دیتابیس فارسی ریخته شده ؟ اگر درست بود کدی که برای نمایش خروجی وب سرویس هست مشکل داره اگر توی دیتابیس مشکل داره ، کدی که سمت درج اطلاعات وب سرویس هست مشکل داشته !
داخل دیتا بیس جوری ست کردم که فارسی نشون میده. پس سمت کد جیسون مشکل داره؟
ممکنه همین طور باشه. شاید هم فرمت webpage ای که خروجی JSON را نشان میده مشکل داشته باشد. مطمئن بشو که خروجی وب سایتی که طراحی کردی بر پایه UTF-8 باشد.
الان داخل دیتابیس قسمت Collation زدم utf8_persian_ci و در قسمت کدها از cpanel خود Encoding زده utf-8 . شما تو کد های جیسون هم تعریف می کنید utf-8 رو یا لازم نیست با وجود اینها؟
منم همین مشکل رودارم ..کلمات رویکی در میان ..فارسی و علامت سوال نشون میده در لیست ویو..!!
توی مرور گر فارسی خروجی نمیده ولی در دیتابیس فارسی ریخته میشه ..
نمی دونم باید چکار کنم ، ولی احتمالا از Json ایراد داره.
خوب بعد از این همه جستجو بالاخره این کد رو داخل جیسون گذاشتم و حل شد !
mysqli_set_charset($connection,"utf8");
نظرات
واسه منم این مشکل رو داشت , حل شد با این کد . ممنون
این کد برای وارد کردن اطلاعات فارسی از سمت موبایل به سرور
method.setEntity(new UrlEncodedFormEntity(params, "UTF-8"))
و این کد برای دریافت اطلاعات فارسی از سمت سرور و نمایش در گوشی می باشد
mysqli_set_charset($connection,"utf8");
نظرات
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام
نظرات