সহকর্মীর সাথে কাজ করার সময় আমি একটি অদ্ভুত সমস্যা পেয়েছি যা এনকোডিংয়ের সাথে সম্পর্কিত বলে মনে হচ্ছে। আমরা আশা করি আপনি যেমন সহজ যথেষ্ট ফাইলের নাম কিছু চিত্র সাথে কাজ করছি city.gif
বা wine.gif
, কিন্তু এক আশা করতে পারে কিছু করার সময়ও যেমন বিশেষ অক্ষর ব্যবহার আরো জটিল হতে é
, ë
, à
। আমরা ডাচ ডেটাগুলির সাথেও কাজ করছি যার এই অক্ষরগুলি রয়েছে, যেমন café
( পাব )। (ফাইলগুলির উত্সের উপর আমাদের নিয়ন্ত্রণ নেই)) এখানেই সমস্যাগুলি উত্থাপন শুরু হয়। নিম্নলিখিত ফাইলের নামগুলি একটি উদাহরণ। সমস্যাটি ডায়াক্রিটিক্স সহ অন্যান্য চরিত্রগুলির ক্ষেত্রেও ঘটে।
café-2.png
cafetaria.png
café.png
প্রথম এবং শেষ আইটেমটিতে একটি উচ্চারণযুক্ত ই থাকা উচিত (অ্যাকসেন্ট আইগু, é
)। এটি চলমান অবস্থায় টার্মিনালে লিনাক্সে (সেন্টোস 6 এবং 7) এভাবে দেখানো হয় ls
। তবে এখানে উইন্ডোজ আসে! (উইন্ডোজ 10, 64 বিট ব্যবহার করে)) এসএসএল এর মাধ্যমে যখন আমাদের সার্ভারের সাথে উইন্ডোজে সংযুক্ত থাকে এবং তারপরে ফোন করা হয় ls
, উপরের তালিকাটি এরকম দেখাচ্ছে:
café-2.png
cafetaria.png
caf▒.png
আপনি যেমন আশাবাদী দেখতে পাচ্ছেন, প্রথম লাইনে এখনও উচ্চারণকৃত ই রয়েছে é
, তবে তৃতীয়টি নেই। পরিবর্তে, আমি ▒
এই চরিত্রটি দেখতে পাচ্ছি - যা medium shade
ইউনিকোডে (9618 দশমিক)। এটি নিজের মধ্যেই আজব। যাইহোক, আমি যখন এসটিটিপি-র মাধ্যমে ফাইলজিলার সাথে যুক্ত হয়ে যাই (উইন্ডোজে এখনও) আমি এটি দেখতে পাই:
café-2.png
cafetaria.png
café.png
সুতরাং এখন বিষয়গুলি ঘুরে দাঁড়িয়েছে: প্রথমটিতে, é
ক্রমটি পরিবর্তিত হয়েছে এবং তৃতীয়টিতে সবকিছু ঠিক আছে। আমি এখানে খুঁজে পেয়েছি যে এটি সম্ভবত সঠিক হয়ে থাকলে ল্যাটিন -1 <-> ইউটিএফ -8 রূপান্তরটি ভুল হয়ে গেছে বলেই সম্ভবত এটি ঘটেছে। কিন্তু ঠিক কি তাই হচ্ছে না?
লিনাক্স আমাদের প্রত্যাশা মতো সবকিছু দেখায়, উইন্ডোজ আমাদের ফাইল নাম (এসএসএইচ (পুটি), বা এসএফটিপি (ফাইলজিলা)) দেখার পদ্ধতি অনুসারে আপাতদৃষ্টিতে অস্বস্তিকর আচরণ দেখায়। এই ফাইলগুলির নামগুলিকে 'সাধারনকরণ' করার কোনও উপায় আছে - যেমন এডিট করুন - এবং নিশ্চিত করুন যে প্রতিটি ওএসে সেগুলি একই রকম; বা কমপক্ষে সামঞ্জস্যপূর্ণ, এবং যদি তাই হয়, কিভাবে? UTF-8
আমাদের পছন্দসই এনকোডিং।
যদিও এটি নিছক একটি নান্দনিক সমস্যা হতে পারে, তবে তা নয়। আমাদের লিনাক্স সার্ভার থেকে উইন্ডোজ এসএফটিপি এর মাধ্যমে জিনিসগুলি ডাউনলোড করার চেষ্টা করার সময়, আমি উপরে উল্লিখিত সমস্যাযুক্ত ফাইলগুলি ডাউনলোড করতে পারি না। ফাইলজিলা যেমন একটি ত্রুটি নিক্ষেপ করবে Can't download file café-2.png: café-2.png does not exist on the server
। আমার কাছে যা দেখে মনে হয় যে ফাইলজিলা ডিরেক্টরি এবং ফাইলের নামটি পড়ে, কোনও এনকোডিংয়ে এটি ব্যাখ্যা করে, এর ব্যাখ্যার সাথে সার্ভারে একটি জিইটি অনুরোধ প্রেরণ করে, তবে সেই ব্যাখ্যাটি লিনাক্স ফাইলের নাম থেকে পৃথক হয় ফলে ফলস্বরূপ ফাইলটি পাওয়া যায় না।
শেষ পর্যন্ত এটির কোনও সমাধান পাওয়া গেলে খুব ভাল লাগবে, যদিও আমি কেন আগ্রহী তা আগ্রহী । ইমেজ ফাইলগুলি সম্ভবত বিভিন্ন অপারেটিং সিস্টেমগুলিতে তৈরি করা হওয়ায় এটি কি ঘটে? লিনাক্স সার্ভার তাদের ভুল ব্যাখ্যা করে বা উইন্ডোজ গণ্ডগোল করছে বলে কি এটি ঘটে? আশা করি এমন একটি সমাধান রয়েছে যেখানে আমরা কেবল আমাদের সিসাদমিনের সাথে যোগাযোগ করতে পারি এবং তাদের সার্ভার কনফিগারেশনে একটি স্যুইচ চালু করতে বলি, তবে আমি ভয় করি যে এটি এতটা সহজ নয়।
python -c "import sys; print(repr(sys.argv[1]))" café-2.png
এবং python -c "import sys; print(repr(sys.argv[1]))" café.png
?