سؤال

ما أريد القيام به هو أن أكون قادرا على التحميل عبر SSHFS بعض الملفات الموجودة على المركزية عبر USS على جهاز الكمبيوتر المحلي الخاص بي. يمكنني أن أفعل ذلك، لكن SSHFS لا يقوم بإيقاف التحويل من EBCDIC إلى ASCII / Unicode. هل هناك أي أعلام يمكنني ضبطها.

بديل، هل يعرف أي شخص بمكتبة يقوم بها EBCDIC تحويلات ASCII حتى أتمكن من إضافتها إلى SSHFS؟

هتافات

علامة

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

المحلول

كن على علم بذلك أن التحويل الشفاف Charset هو لعبة خطيرة للغاية. هل أنت متأكد تماما من أنك سوف أبدا قراءة أي شيء ولكن ملفات ebcdic عبر sshfs؟ ماذا لو كانت هناك بيانات ثنائية؟

استخدمت بعض الأنظمة تحويلات شفافة في الماضي:

  • السمعة "وضع ASCII" من FTP، الذي افسدت العديد من التنزيلات الثنائية
  • نظام ملفات VFAT في Linux، والتي تلاحظ: "البرامج التي تقوم بحساب lseeks لن ترغب في تحويل النص في نواة. كان لدى العديد من الأشخاص بياناتهم التي تدمرها هذه الترجمة. احذر!"

لذلك، أنصح بشدة أن أكون على علم بالعواقب.

لماذا لا تستخدم استخدام محرر يمكنه التعامل مع EBCDIC؟ VIM، على سبيل المثال يمكن أن تفعل ذلك (إذا تم تجميعها).

نصائح أخرى

هناك العديد من المكتبات لتحويل مجموعة الأحرف - Iconv (جزء عادة من مكتبة C الخاصة بك؛ انظر على سبيل المثال iconv_open) و تودد جنو تتبادر إلى الذهن.

أعلم أن الكثير من الوقت قد مرت منذ السؤال الأصلي ولكن سأترك المعلومات هنا:
لقد كتبت رقعة ل SSHFS التي تضيف التحويل التلقائي بين ASCII و EBCDIC. ويمكن العثور عليها هنا: https://github.com/vadimshchukin/sshfs-ebcdic.

يضيف التصحيح خيار "-T" سطر الأوامر الذي يحدد التعبير العادي عن الملفات التي يجب تحويلها. علي سبيل المثال sshfs -t".*" يحدد التحويل لجميع الملفات.

اضطررت إلى "التعديل" جدول التحويل نظرا لوجود مختلف "النكهات" من EBCDIC و ICONV لم تترجم النص بين ASCII كما EBCDIC على نظامي حسب الحاجة. الميزة هنا هي أن شخص ما يمكن بسهولة تغيير جدول الترجمة بسهولة حسب الحاجة.

بالمناسبة كتبت نفس التصحيح للفوز SSHFS.

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