كان عندنا مشكله مع أحد العملاء في نظام ال”sms” بحيث يستخدم ترميز يختلف عن الترميز اللي يقبله نظام ال”sms” الخاص فينا, نظامنا يحتاج “utf-8″ وهو يستخدم ” iso-8859-1″ وعشان كذا العربي يطلع ملخبط .
في لينكس تقدر تعرف نوع الترميز عن طريق الامر:
file -bi file_name
استبدل “file_name” بإسم الملف.
والمخرجات راح تكون شي زي كذا
text/plain; charset=us-ascii
المحدد باللون العريض هو نوع الترميز, لكن في حالتي فحصت الملف وكان نوعه “iso-8859-1” واذا جيت أحوله لـ “utf-8” عن طريق اﻻمر هذا
iconv -f ISO-8859-1 -t UTF-8 readme.txt > output.txt
طبعاً اﻻمر واضح والخيارات تعني :
-f الصيغة المراد التحويل منها .
-t الصيغه المراد التحويل إليها .
ثم طباعة المخرجات إلى ملف خارجي.
لكن بعد التحويل النتيجة نفسها ! الكلام العربي برضوا يطلع لي ملخبط !
بعد البحث وجدت أن العميل يستخدم صيغة WINDOWS-1256 والتي تعرض العربي بشكل سليم فقط في بيئة الويندوز.
فالحل يطلع زي كذا
iconv -f WINDOWS-1256 -t UTF-8 readme.txt > output.txt
للمزيد عن الترميز
