بروتوكول FTP ، Jakarta Commons Net ، مشكلة ترميز اسم الملف

StackOverflow https://stackoverflow.com/questions/4284486

  •  28-09-2019
  •  | 
  •  

سؤال

لدي تطبيق عمل يقوم بتنزيل ملف معين في خادم FTP. لدي اسم الملف الذي أرغب في تنزيله ، لذلك كنت فقط أتصل واستخدام: ftp.retrievefile (اسم الملف ، FileInputStream) ؛

لذا ، كان علينا الآن تغيير خادم FTP ، وهذا خادم FTP الجديد الذي أعتقد أنه يعمل تحت Linux (كان Windows القديم). الآن لا يمكنني تنزيل الملفات باستخدام الاسم الذي يحتوي على سلاسل ISO-8859-1 ، مثل ç ó ó õ. لقد حاولت استخدام ftpclient.setControlencoding ("ISO-8859-1") مباشرة بعد مُنشئ FTPClient لكنه لم ينجح. عندما يتم تسمية Retreviefile ، فإنه يعيد خطأ لأنه فشل في العثور على الملف. لكنه يعمل بشكل جيد مع أسماء الملفات بدون تلك الأوتار.

أنا أقرأ اسم الملف من ملف آخر ... لقد ارتكبت خطأً مرة واحدة ، وأقرأه ، اسم الملف باسم ISO_8859-1 (ولكن تم ترميزه على أنه UTF-8 في الملف) ثم حاولت إلى retreviefile وعملت مع Strange الأحرف في الاسم. ماذا يحدث؟؟

تعديل:

هذه إجابات من الخادم:

Syst 215 Unix Type: L8

الفذ 211 فورت: EPRT EPSV MDTM PASV SIZE SIZE TVFS 211 END

هل كانت مفيدة؟

المحلول

حسنًا ، تم حل هذا. أدركت أن GFTP كان يقوم بتحميل الملفات مع تشفير خاطئ في الاسم. كان يستخدم UTF8

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top