مشكلة الترميز في لينكس والحروف العربية

كان عندنا مشكله مع أحد العملاء في نظام ال”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



للمزيد عن الترميز

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *