PDA

View Full Version : مشکل در نام فارسی هنگام آپلود فایل (تبدیل میشه به علامت سوال)



abbasalim
دوشنبه 29 اردیبهشت 1393, 12:08 عصر
بنام خدا
سلام

من با کد زیر یه فایل رو آپلود میکنم منتها اگه نام فایل فارسی باشه (حتی عددهاش) تو url به جا نام فایل ؟؟؟ میزاره مثلا میشه
P_��������_������_wy1x pk04.wee.png

اما در فایل های انگلیسی مشکلی ندارم بایدچیکار کنم به نظرتون کلی استک اورفلو رو زیر و رو کردم چیزه خاصی گیرم نیومد:گریه:


URL url = new URL(f_url[0]);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();

// Set the size of the transfer stream, in case that the application
// collapses due to small memory, this method is used when we don't
// know the size of the content, we use HTTP request without cache
httpURLConnection.setChunkedStreamingMode(128 * 1024);// 128K

// Set the input and output
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
httpURLConnection.setUseCaches(false);

// Set the HTTP method
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setRequestProperty("Connection", "Keep-Alive");
httpURLConnection.setRequestProperty("Charset", "UTF-8");
httpURLConnection.setRequestProperty("Content-Type",
"multipart/form-data;boundary=" + boundary);

// Get outputstream according to the url connection
DataOutputStream dos = new DataOutputStream(httpURLConnection.getOutputStream ());



// Write the HTTP POST header
dos.writeBytes(twoHyphens + boundary + end);
dos.writeBytes("Content-Disposition: form-data; name=\"uploadedfile\"; filename=\""
+ f_url[1].substring(f_url[1].lastIndexOf("/") + 1)
+ "\"" + end);
dos.writeBytes(end);

FileInputStream fis = new FileInputStream(f_url[1]);

int bufferSize = 8 * 1024; // The size of the buffer, 8KB.
byte[] buffer = new byte[bufferSize];

int length = 0;

while ((length = fis.read(buffer)) != -1) {

// Write data to DataOutputStream
dos.write(buffer, 0, length);
}

dos.writeBytes(end);
dos.writeBytes(twoHyphens + boundary + twoHyphens + end);

fis.close(); // Close the FileInputStream.
dos.flush(); // Flush the data to DataOutputStream.

// Get the content of the response
InputStream is = httpURLConnection.getInputStream();

InputStreamReader isr = new InputStreamReader(is, "utf-8");
BufferedReader br = new BufferedReader(isr, 8 * 1024);
result = br.readLine();
Log.d(DBAdapter.TAG, result);
} catch (Exception e) {
e.printStackTrace();

}

mf2009
دوشنبه 29 اردیبهشت 1393, 12:56 عصر
خوب نامش رو انگلیسی بزار :لبخند:

abbasalim
دوشنبه 29 اردیبهشت 1393, 13:00 عصر
خوب نامش رو انگلیسی بزار :لبخند:

اخه واسه یه شرکت اونجا هم نام ها رو فارسی میزارن که گمشون نکنن (گفتن باید فارسی باشه):اشتباه:

saeed_g21
دوشنبه 29 اردیبهشت 1393, 13:02 عصر
مشکلت در Unicode هست با تنظیم درست میتونی برطرف کنی

abbasalim
دوشنبه 29 اردیبهشت 1393, 13:10 عصر
مشکلت در Unicode هست با تنظیم درست میتونی برطرف کنی

آخه مشکل اینجاست که مشکل کجاست؟ من جاهایی که میدونستم رو utf ست کردم دیگه کجا باید بزارم:افسرده:

saeed_g21
دوشنبه 29 اردیبهشت 1393, 13:13 عصر
انتهای url یک page هست با PHP یا ASP.Net درسته ؟
از اون page درست ست کردی ؟

abbasalim
دوشنبه 29 اردیبهشت 1393, 13:17 عصر
انتهای url یک page هست با PHP یا ASP.Net (!انتهای فایل های asp.net مینویسه aspx )درسته ؟
از اون page درست ست کردی ؟

بله اون page درست ست شده و تست شده مشکلی نداره

saeed_g21
دوشنبه 29 اردیبهشت 1393, 13:26 عصر
منظورم زبان برنامه نویسیش بود:چشمک:

در انتهای کدهات میتونی اسم فایلت رو بگیری با Toast نگاه کنی ببینی درست هست یا نه البته بتونی با debug مرحله به مرحله تست بزنی خوب میشه ؟

اگه اسم فایل سالم بود مشکل از page هست

abbasalim
دوشنبه 29 اردیبهشت 1393, 13:30 عصر
منظورم زبان برنامه نویسیش بود:چشمک:

در انتهای کدهات میتونی اسم فایلت رو بگیری با Toast نگاه کنی ببینی درست هست یا نه البته بتونی با debug مرحله به مرحله تست بزنی خوب میشه ؟

اگه اسم فایل سالم بود مشکل از page هست
این طرف که نام فارسی درسته اونطرف هم که دارن نام فارسی آپلود میکنن مشکلی ندارن بین این طرف و اون طرف یه بین الطرفینی هست که عیب از اونه :گیج::ناراحت:

saeed_g21
دوشنبه 29 اردیبهشت 1393, 13:38 عصر
نام فایلها با کاراکترهای عربی نوشته نشده باشن ؟

abbasalim
دوشنبه 29 اردیبهشت 1393, 14:22 عصر
نه عربی نیستن کاملا فارسی هستن + عربی هم باشن utf-8 هستن دیگه :متفکر:

saeed_g21
دوشنبه 29 اردیبهشت 1393, 14:29 عصر
نه نیستن چون همین مشکل برایم پیش آمده بود موقع ساخت وبسایت
با PHP وصل میشدم به SQLSERVER اطلاعات میگرفتم چون در SQLSERVER عربی بود موقع لود اطلاعات نمای سایت که فارسی بود UTF-8 درست نشان میداد ولی اطلاعات SQLSERVER ؟؟؟؟؟؟؟؟؟؟ میشدن و بلعکس که مجبور شدم UTF-8 رو به Arabic تغییر بدم درست بشه

abbasalim
دوشنبه 29 اردیبهشت 1393, 14:32 عصر
چون برنامه برای اندروید های 4 به بالاست و اونها هم فارسی رو پشتیبانی میکنن پس مشکلی از این بابت نیست ، من فکر میکنم یه جای دیگه از کد هم باید utf-8 گذاشت ولی نمیدونم کجا :عصبانی++:

darkenerboy
دوشنبه 29 اردیبهشت 1393, 14:34 عصر
بفرما این هم کد (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2025479&viewfull=1#post2025479) :لبخند:

abbasalim
دوشنبه 29 اردیبهشت 1393, 14:44 عصر
بفرما این هم کد (http://barnamenevis.org/showthread.php?447908-%D8%A7%DB%8C%D9%86-%D9%87%D9%85-%DA%A9%D8%AF&p=2025479&viewfull=1#post2025479) :لبخند:

ممنون ولی من با ارسال متن فارسی مشکلی ندارم مشکلم اینه که این فایل نامش فارسیه

البته الان به ذهنم رسید که نام رو جدا بفرستم همراه تصویر بعد تو سرور نامش رو به جای علامت سوال به همون نامی که فرستادیم تغییر بدم که اگه چاره ای نباشه باید این کاررو بکنم