مفتاح الوصول n يتخطى إلى التصفح داخل الصفحة. تخطي إلى بداية المحتوى

هذه الوثيقة ترجمة للأصل. في حالة وجود تعارض أو أخطاء، تكون أحدث نسخة من المستند الإنجليزي الأصلي هي التي يُعتد بها. حقوق النسخ الأصلية مملوكة بواسطة W3C، كما هو موضح بأدناه.

المترجم: Arabic translation services, wintranslation

s_gotoW3cHome التدويل
 

نموذج ترميز متعدد اللغات

الجمهور المستهدف:رموز XHTML/HTML (استخدام أدوات التحرير أو إعداد النصوص), ومطورو النصوص (PHP ،JSP, الخ)، ومديرو مشاريع الويب، وأي شخص يبحث عن معلومات عن كيفية التعامل مع عمليات ترميز الحروف في نماذج.

السؤال

ما أفضل وسيلة للتعامل مع مشكلات الترميز في نماذج قد تستخدم لغات ونصوصًا متعددة؟

الإجابة

أفضل وسيلة للتعامل مع مشكلات الترميز في نماذج (X)HTML هي تقديم جميع صفحاتك في UTF-8. حيث يمكن لـ UTF-8 تمثيل حروف مجموعة كبيرة من اللغات. وتقوم برامج التصفح بإرسال بيانات النموذج بنفس نظام التشفير مثل الصفحة الحاوية للنموذج، بحيث يمكن للمستخدم ملء البيانات بأى لغة ونص تحتاجها.

وهناك تفاصيل قليلة للتأكد من أن تلك المعالجة تعمل بصورة جيدة. أولاً، من المهم أن تحدد للمتصفح أن صفحة النموذج تستخدم UTF-8. وهناك طرق شتى لـ إخبار المتصفح عن ترميز صفحتك. وهذا الأمر مهم على أي حال، ولكنه أكثر أهمية في حالة عدم احتواء صفحة النموذج ذاتها على أي حروف أخرى غير US-ASCII، ولكن قد يكتب مستخدموك بحروف أخرى.

ثانيًا، قد تكون فكرة جيدة بالنسبة للنص الذي يستقبل بيانات النموذج أن يتأكد من أن البيانات المرتدة تستخدم UTF-8 بالفعل (في حالة حدوث خطأ ما، على سبيل المثال قيام المستخدم بتغيير الترميز). إمكانية التحقق بسبب احتواء UTF-8 على نمط بايت محدد للغاية لا يُرى في أى نظام ترميز آخر. في حالة استلام بيانات أخرى غير UTF-8، ينبغي إرسال رسالة خطأ.

على سبيل المثال، في لغة Perl، قد يظهر اختبار تعبير مُعتاد لـ UTF-8 كما يلي:

$field =~
  m/\A(
     [\x09\x0A\x0D\x20-\x7E]            # ASCII
   | [\xC2-\xDF][\x80-\xBF]             # non-overlong 2-byte
   |  \xE0[\xA0-\xBF][\x80-\xBF]        # excluding overlongs
   | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  # straight 3-byte
   |  \xED[\x80-\x9F][\x80-\xBF]        # excluding surrogates
   |  \xF0[\x90-\xBF][\x80-\xBF]{2}     # planes 1-3
   | [\xF1-\xF3][\x80-\xBF]{3}          # planes 4-15
   |  \xF4[\x80-\x8F][\x80-\xBF]{2}     # plane 16
  )*\z/x;

يمكن تهيئة هذا التعبير بحيث يكون مناسبًا لأي لغات برمجة أخرى. فهي تهتم بموضوعات متنوعة، مثل الترميز غير القانوني، والاستخدام غير القانوني للبدائل. وتعود إلى الحالة صواب في حالة ما إذا كانت $field هي UTF-8، وتكون في الحالة خطأ إذا كان الأمر غير كذلك.

قل لنا رأيك (بالانجليزية).

الإنضمام إلى خدمة RSS.

موارد جديدة.

الصفحة الرئيسية للأخبار.

Twitter (الصفحة الرئيسية للأخبار.)

‎@webi18n

لمزيد من القراءة

By:‏ Martin Dürst, W3C. المترجم: Arabic translation services, wintranslation.

XHTML 1.0 سليم!
CSS سليم!
بترميز UTF-8!

مترجم عن محتوى مكتوب باللغة الإنجليزية بتاريخ 2007-10-26. تغيرت النسخة المترجمة لأخر مرة في 2011-12-08 11:10 بتوقيت جرينيتش

للاطلاع على محفوظات التغييرات التي أجريت على المستند ابحث عن qa-forms-utf-8 في مدونة i18n.