کلیدستان

نسخه‌ی کامل: مشکل در ارسال رشته های فارسی به سرور با httpURLconnection (اندروید)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام دوستان امیدوارم حالتون خوب باشه.
من در حال نوشتن یه app هستم که یه بخشیش باید یه عکس و یه سری رشته فارسی و انگلیسی رو به سرور ارسال کنم.
من برای این کار اومدم از httpURLconnection استفاده کردم.
ارسال عکس با موفقیت انجام میشه
ارسال رشته های انگلیسی و حتی شماره تلفن که رشته با محتوای عدد هست هم درست ارسال میشه
اما رشته های فارسی مثل نام و توضیحات و آدرس بعد از ارسال تو سرور به کاراکتر های نامفهوم تبدیل میشن
مثلا عبارت "طراحی سایت و نرم افزار اندروید" رو به "71'-" تبدیل می کنه
یا تو آدرس "تهران خیابان شریعتی" رو به "*G1'F" تبدیل می کنه


الان مشکل کجاست؟
آیا من باید موقع ارسال پارمتر ها کاری کنم یا اینکه بعد از دریافت تو سرور باید کاری کنم؟
مثلا من با کد زیر دارم اسم رو واسه سرور می فرستم:

کد پی‌اچ‌پی:
String onvan "حامد سیفی";
                dos.writeBytes("Content-Disposition: form-data; name=\"onvan\""
                        lineEnd);
                dos.writeBytes("Content-Type: text/plain; charset=UTF-8"
                        lineEnd);
                dos.writeBytes("Content-Transfer-Encoding: 8bit" lineEnd);
                dos.writeBytes(lineEnd);
                dos.writeBytes(onvan);
                dos.writeBytes(lineEnd); 

این هم کدای راه اندازی کتابخونم هست (httpURLconnection) :

کد پی‌اچ‌پی:
conn = (HttpURLConnectionurl.openConnection();
                conn.setDoInput(true); // Allow Inputs
                conn.setDoOutput(true); // Allow Outputs
                conn.setUseCaches(false); // Don't use a Cached Copy
                conn.setRequestMethod("POST");
                conn.setRequestProperty("Connection""Keep-Alive");
                conn.setRequestProperty("charset""UTF-8");
                // conn.setRequestProperty("ENCTYPE", "multipart/form-data");
                conn.setRequestProperty("Content-Type",
                        "multipart/form-data;boundary=" boundary); 

ممنون میشم کمکم کنید
تو نت دنبال کدی تحت عنوان encodeHtml بگرد یه متد هس دانلود کن اضافه کن به برنامت هرجا که خواسی متنی ارسال کنی فارغ از نوع ابتدا encode کن و سپس بفرس ایشالا که جواب میگیری
اگه از این روش استفاده کنی از سمت سرور هم باید متنتو  decode کنی
(۱۳۹۴/۰۷/۲۳, ۰۳:۰۹ ب.ظ)'u3fraja' نوشته: [ -> ]تو نت دنبال کدی تحت عنوان encodeHtml بگرد یه متد هس دانلود کن اضافه کن به برنامت هرجا که خواسی متنی ارسال کنی فارغ از نوع ابتدا encode کن و سپس بفرس ایشالا که جواب میگیری
اگه از این روش استفاده کنی از سمت سرور هم باید متنتو  decode کنی

 

سلام
لطفا بیشتر راهنمایی کن برادر آخه هر چی میگردم چیزی پیدا نمی کنم
خودت نداریش بهم بدی؟

 
مشکل حل شد دوستان.
موقع ارسال رشته اول با base64 اینکدش می کنم و بعد در کد پی اچ پی سمت سرور دیکدش می کنم و استفاده می کنم. به همین راحتی
ممنون از کمکی که کردین.
دوستون دارم