في أعمال التنمية اليومية في الواجهة الأمامية ، نتعامل غالبًا مع HTML و JavaScript و CSS ولغات أخرى. مثل لغة حقيقية ، تحتوي لغة الكمبيوتر أيضًا على الأبجدية ، والقواعد النحوية ، والكوكسيك ، وطرق الترميز ، وما إلى ذلك. هنا سأتحدث بإيجاز عن مشاكل الترميز التي غالبًا ما تواجه العمل اليومي لـ HTML و JavaScript.
في أجهزة الكمبيوتر ، يتم تمثيل المعلومات التي نقوم بتخزينها بالرمز الثنائي. ما نعرفه عن تحويل الرموز مثل الأحرف الإنجليزية والصينية المعروضة على الشاشة والرمز الثنائي المستخدم للتخزين هو الترميز.
هناك مفهومين أساسيان يتم شرحهما ، تشفير Charset وتشفير الأحرف:
إن Charset ، مجموعة أحرف ، أي جدول رسم الخرائط بين الرمز والرقم ، وهو يحدد أن 107 هو "A" من Koubei ، 21475 هو "فم" الفم ، والجداول المختلفة لها علاقات رسم الخرائط المختلفة ، مثل ASCII ، GB2312 ، Unicode. من خلال جدول رسم الخرائط هذا للأرقام والأحرف ، يمكننا تحويل رقم تمثل ثنائي إلى حرف معين.
ترميز Gramter ، طريقة الترميز. على سبيل المثال ، بالنسبة للرقم 21475 الذي يجب "نقله" ، هل يجب أن نستخدم /U5K3E3 لتمثيله ، أو ٪ E5 ٪ 8F ٪ A3 لتمثيله؟ يتم تحديد هذا عن طريق تشفير الأحرف.
بالنسبة لسلاسل مثل "cuoxin.com" ، فهي شخصيات شائعة الاستخدام للأميركيين. لقد صاغوا مجموعة أحرف تسمى ASCII ، حيث يكون الاسم الكامل هو رمز المعلومات القياسي الأمريكي لتبادل. أرقام 128 أرقام 0127 (إلى الطاقة السابعة من 2 ، 0 × 00-0 × 7F) التي تمثل 128 حرفًا شائع الاستخدام مثل 123ABC. هناك 7 بتات في المجموع ، والأول هو بت الإشارة ، والتي يجب استخدامها لاستخدام الرمز العكسي المكملة لتمثيل الأرقام السلبية أو شيء من هذا. هناك 8 بت في المجموع لتشكيل بايت. كان الأمريكيون بخيل بعض الشيء في ذلك الوقت. إذا قاموا بتصميم بايت كان 16 بت أو 32 بت من البداية ، فستكون هناك العديد من المشكلات في العالم. ومع ذلك ، في ذلك الوقت ، ربما ظنوا أن 8 بتات كانت كافية ، والتي يمكن أن تمثل 128 حرفًا مختلفًا!
نظرًا لأن أجهزة الكمبيوتر مصنوعة من قبل الأميركيين ، فإنها توفر مشكلة في أنفسهم وتشفير جميع الرموز التي يستخدمونها ، مما يجعلها مريحة للغاية للاستخدام. ولكن عندما بدأت أجهزة الكمبيوتر في أن تصبح دولية ، تنشأ المشكلة. خذ الصين كمثال. الشخصيات الصينية هي فقط عشرات الآلاف. ماذا علي أن أفعل؟
إن نظام البايت 8 البايتات الحالي هو الأساس ، ولا يمكن تدميره ، ولا يمكن تعديله إلى 16 بت أو أي شيء ، وإلا فإن التغييرات ستكون كبيرة جدًا ، بحيث يمكنك فقط اتخاذ مسار آخر: استخدام أحرف ASCII متعددة لتمثيل حرف مختلف ، أي MBCs (نظام حرف متعدد البتات متعدد البايت).
مع مفهوم MBCs هذا ، يمكننا تمثيل المزيد من الشخصيات. على سبيل المثال ، إذا استخدمنا أحرفين ASCII ، فهناك 16 بت ، ومن الناحية النظرية ، هناك حرفين لقوة 16 65،536 حرفًا. ولكن كيف يتم تعيين هذه الترميزات على الأحرف؟ على سبيل المثال ، ترميز Unicode لـ "الفم" "الفم" هو 21475. من قرر؟ مجموعة الأحرف ، وهو Charset تم تقديمه للتو. ASCII هي مجموعة الأحرف الأساسية. فوق هذا ، لدينا مجموعات شخصيات مشابهة لـ GB2312 و BIG5 لـ MBCs باللغة الصينية الصينية والتقليدية المبسطة ، وما إلى ذلك. وأخيراً ، كانت هناك مؤسسة تسمى Unicode Consortium ، والتي قررت إنشاء مجموعة أحرف (UCS ، مجموعة الأحرف العالمية) بما في ذلك جميع الأحرف وأسلوب الترميز المقابل ، وهي Unicode. منذ عام 1991 ، أصدرت الإصدار الأول من المعايير الدولية Unicode ، ISBN 0-321-18578-1 ، وشاركت المنظمة الدولية للتوحيد ISO أيضًا في تخصيص هذا ، ISO/IEC 10646: مجموعة الأحرف العالمية. باختصار ، Unicode هو معيار حرف يغطي بشكل أساسي جميع الرموز الموجودة على الأرض. يتم استخدامه الآن على نطاق أوسع. ينص معيار ECMA أيضًا على أن الأحرف الداخلية للغة JavaScript تستخدم معيار Unicode (وهذا يعني أن أسماء متغيرات JavaScript وأسماء الوظائف وما إلى ذلك مسموح بها باللغة الصينية!).
للمطورين في الصين ، قد يواجهون المزيد من المشكلات مثل التحويل بين GBK و GB2312 و UTF-8. بالمعنى الدقيق للكلمة ، هذا البيان ليس دقيقًا للغاية. GBK و GB2312 هما مجموعات أحرف (charsets) ، في حين أن UTF-8 هي طريقة ترميز (ترميز الأحرف) ، وهي طريقة ترميز لمجموعات أحرف UCS في معيار Unicode. نظرًا لأن صفحات الويب التي تستخدم مجموعات أحرف Unicode يتم ترميزها بشكل أساسي باستخدام UTF-8 ، غالبًا ما يضعها الناس معًا ، وهو أمر غير دقيق بالفعل.
مع Unicode ، على الأقل قبل أن واجهت الحضارة البشرية الأجانب ، هذا مفتاح رئيسي ، لذلك استخدمه. الآن طريقة ترميز Unicode الأكثر استخدامًا على نطاق واسع هي UTF-8 (تنسيق تحويل UCS/Unicode 8 بت) ، والذي يحتوي على العديد من الأشياء الجيدة بشكل خاص:
ترميز مجموعة أحرف UCS ، عالمية في جميع أنحاء العالم
إنها طريقة ترميز أحرف متغيرة طولها ، متوافقة مع ASCII
النقطة الثانية هي ميزة كبيرة ، والتي تجعل الأنظمة التي تستخدم ASCII Pure ترميز متوافقة مسبقًا ، ولا تضيف سعة تخزين إضافية (على افتراض أن طريقة الترميز الطويلة يتم تعيينها ، تتكون كل حرف من 2 بايت ، ثم يتم مضاعفة مساحة التخزين التي تحتلها أحرف ASCII في هذا الوقت).