Solved_پیدا کردن باگ عجیب در برنامه بصورت اتفاقی !
سلام دوستان <
من برای پر کردن لیست ویو در برنامه یک جیسون دریافت میکنم که روی یک فایل PHP بصورت UTF-8 ذخیره شده <
بصورت اتفاقی تمام اعدادی که در آرایه بصورت فرمت فارسی (مثل انجمن) در فایل PHP وجود داشت تبدیل به ؟؟ شد (فکر کنم بخاطر IDEA)
از جیسون لینک مستقیم فایل های ویدئویی + اسم ویدئو ها دریافت میشه
لینک ها سالم هستند < اما اسم ویدئو ها < اگر عدد در بینشون میبوده تبدیل به ؟؟ شده
تا اینجا هیچ چیز عجیبی وجود نداره <
اما موقع دانلود کردن فایل < برای ذخیره کردن اون < اسم فایل رو همون چیزی میزارم که از سرور دریافت شده
مشکل اینجاست که OutPutStream نمیتونه < اسم فایل هایی که تغییر کرده اند رو ذخیره کنه !!
درحالی که بقیه فایل ها به راحتی دانلود میشوند <
10-15 14:36:41.336: I/T_D(6693): http://SERVER/file__47774.mp4
10-15 14:36:41.336: I/T_D(6693): ، ? شهر?ور ??، ?، ت?تراژ پا?ان?
10-15 14:36:41.336: W/EGL_emulation(6693): eglSurfaceAttrib not implemented
10-15 14:36:41.512: W/System.err(6693): java.io.FileNotFoundException: /storage/emulated/0/md5temp/? شهر?ور ??، ?، ت?تراژ پا?ان?.md5: open failed: EINVAL (Invalid argument)
10-15 14:36:41.512: W/System.err(6693): at libcore.io.IoBridge.open(IoBridge.java:416)
10-15 14:36:41.512: W/System.err(6693): at java.io.FileOutputStream.<init>(FileOutputStream.java:88)
10-15 14:36:41.512: W/System.err(6693): at java.io.FileOutputStream.<init>(FileOutputStream.java:128)
10-15 14:36:41.512: W/System.err(6693): at java.io.FileOutputStream.<init>(FileOutputStream.java:117)
10-15 14:36:41.512: W/System.err(6693): at com.freestyler.khandevaneh.criss.FileDownloader$2.run(FileDownloader.java:119)
10-15 14:36:41.512: W/System.err(6693): at java.lang.Thread.run(Thread.java:856)
10-15 14:36:41.512: W/System.err(6693): Caused by: libcore.io.ErrnoException: open failed: EINVAL (Invalid argument)
10-15 14:36:41.512: W/System.err(6693): at libcore.io.Posix.open(Native Method)
10-15 14:36:41.512: W/System.err(6693): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110)
10-15 14:36:41.512: W/System.err(6693): at libcore.io.IoBridge.open(IoBridge.java:400)
10-15 14:36:41.512: W/System.err(6693): ... 5 more
توی StackOverFlow هم سرچ کردم < کسانی که به eglSurfaceAttrib not implemented برخورد کرده بودند دلیلشون چیزی دیگه بوده
این رو هم بگم که من مشکلی باهاش توی ادامه روند برنامه ندارم < اما میخوام دلیل این خطا رو بدونم
شما هیچوقت مشکلی در نمایش دادن یک مقدار String با مقادیر بالا ندارید < اگر کاربر میتونه اسم برای فایل هاتون انتخاب کنه < حتما چک کنید < کاراکترهای غیر مجاز رو استفاده نکنه < و یا موقع دانلود کردن فایل < این کاراکترهارو Replace کنید
برای حل این مشکل از این استفاده کنید <
دوستان اگر راه قشنگتر و بهتری سراغ دارید < اعلام کنید
String standardFileName = item.title
.replace("\\", "")
.replace("/", "")
.replace(":", "")
.replace("*", "")
.replace("?", "")
.replace("\"", "")
.replace("<", "")
.replace(">", "")
.replace("|", "");
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .