آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

ارسال صحیح متن های فارسی، با روش های HttpPost و HttpGet ، در برنامه نویسی اندروید

معمولا ممکن است که کدهای مربوط به روش های HttpPost و HttpGet ، برای ارسال متن های انگلیسی به سرور اینترنتی، درست عمل کنند اما زمانی که یک متن فارسی را با آنها به سرور ارسال نمایید، مشاهده می کنید که در طرف سرور، تمامی حروف متن فارسی، به شکل علامت سوال (?) در آمده اند. برای جلوگیری از این مشکل، باید UTF-8 را برای پردازش کاراکترها انتخاب کنیم.

فرض کنید که کدهای مربوط به روش HttpPost را به صورت زیر نوشته ایم (تنها بخشی از کدها را ذکر کرده ایم) :


HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params));

که در آن، url ، رشته ای (String) است که آدرس اینترنتی صفحه مورد نظرمان در آن ذخیره شده است. با این شیوه کدنویسی، متن های انگلیسی به درستی ارسال می شوند، اما برای متن های فارسی، درست عمل نمی کند.

به خط زیر از کدها توجه کنید :


httpPost.setEntity(new UrlEncodedFormEntity(params));

برای اینکه متن های فارسی به درستی ارسال شوند، باید آن را به صورت زیر تغییر بدهیم :


httpPost.setEntity(new UrlEncodedFormEntity(params,"UTF-8"));

برای روش HttpGet نیز باید مشابه روش HttpPost عمل کنیم. یعنی بخشی مشابه (هنگام استفاده از setEntity) از کدهای آن را نیز به همین صورت (با افزودن عبارت UTF-8) تغییر بدهیم.

نویسنده علیرضا گلمکانی
شماره کلید 347
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 2 2 0
sami
۱۳۹۶/۰۳/۰۹
۱۲:۵۸

با سلام و تشکر از آموزشهاتون
من با روش JSONObject json=jparser.makeHttpRequest(urls,"POST",param);  مفدارهایی مثل نام کاربری به سرور میفرستم اما بعضی موارد گویا string خالی به سرور میفرسته ! مشکل از چی میتونه باشه؟

مهدی
۱۳۹۶/۰۶/۳۰
۲۱:۰۸

سلام سوال داشتم، 
می خواستم از طریق httppost  اطلاعات لاگین رو بفرستم به سرور php و بعد از لاگین و ایجاد session توی webview هم لینک مورد نظر session های کاربر رو تشخیص بده چطوری می تونم این کار رو بکنم

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)