البحث في الموقع

أوتف-8 - ترميز الأحرف

يدعم Unicode تقريبًا كل ما هو موجودمجموعات الأحرف. أفضل شكل لترميز مجموعة أحرف Unicode هو ترميز utf-8. ويوفر التوافق مع ASCII ، ومقاومة فساد البيانات والكفاءة وسهولة المعالجة. ولكن عن كل شيء في النظام.

أشكال الترميز

تعمل أجهزة الكمبيوتر مع الأرقام ليس فقط كماكائنات رياضية مجردة ، ولكن كمجموعات من وحدات التخزين والمعالجة لمعلومات ذات حجم ثابت - بايت وكلمات 32 بت. يجب أن يأخذ معيار التشفير ذلك في الاعتبار عند تحديد طريقة تمثيل الأحرف بالأرقام.

في أنظمة الكمبيوتر ، يتم تخزين الأعداد الصحيحة فيخلايا الذاكرة بحجم 8 بت (1 بايت) أو 16 أو 32 بت. يحدد كل نموذج ترميز Unicode أي تسلسل لخلايا الذاكرة يمثل عددًا صحيحًا يتوافق مع حرف معين. يوفر المعيار ثلاثة أشكال مختلفة من ترميز أحرف Unicode: كتل 8 و 16 و 32 بت. وفقًا لذلك ، يتم استدعاؤها بـ utf-8 و UTF-16 و UTF-32. اسم UTF يرمز إلى تنسيق تحويل Unicode. كل من أشكال الترميز الثلاثة هو وسيلة متساوية لتمثيل أحرف Unicode ، ولها مزايا في التطبيقات المختلفة.

هذه الترميز يمكن استخدامها لتمثيل جميع أحرف Unicode. وبالتالي ، فهي متوافقة تمامًا مع الحلول لأسباب مختلفة باستخدام أشكال مختلفة من التشفير. يمكن تحويل كل ترميز بشكل فريد إلى أي من الاثنين الآخرين دون فقد البيانات.

utf 8 ترميز

مبدأ عدم فرض

تم تصميم كل من نماذج ترميز Unicode معمع الأخذ في الاعتبار عدم جواز التداخل الجزئي. على سبيل المثال ، ينشئ Windows-932 الأحرف من واحد أو اثنين بايت من التعليمات البرمجية. يعتمد طول التسلسل على البايتة الأولى ، لذلك لا تتقاطع قيم البايت الأولية في تتابع وحدتي بايت وبايت واحد. ومع ذلك ، قد تكون قيم البايت المفرد والبايت الختامي للتسلسل هي نفسها. وهذا يعني ، على سبيل المثال ، أنه عند البحث عن الحرف D (رمز 44) ، يمكنك العثور عليه عن طريق الخطأ في الجزء الثاني من تسلسل 2 بايت من الحرف "D" (رمز 84 44). لتحديد التسلسل الصحيح ، يجب أن يأخذ البرنامج بعين الاعتبار وحدات البايت السابقة.

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

يتجنب تنسيق تحويل Unicodeلهذه المشكلة ، لأن قيم وحدة تخزين المعلومات الرائدة والإغلاق والوحيد لا تتطابق. هذا يضمن أن جميع يونيكود للبحث والمقارنة، لا يعطي نتائج خاطئة بسبب تزامن أجزاء مختلفة من رمز الحرف. والحقيقة أن هذه الأشكال من الترميز مراقبة nenalozheniya المبدأ، يميز بينها وبين ترميزات متعددة البايت شرق آسيا الأخرى.

جانب آخر من عدم تقاطع ترميزات Unicodeهو أن كل حرف له حدود محددة بوضوح. هذا يلغي الحاجة إلى مسح عدد غير محدد من الأحرف السابقة. هذه الميزة من الترميزات تسمى أحيانا التزامن الذاتي. سيؤدي تشويه وحدة واحدة من التعليمات البرمجية إلى تشويه حرف واحد فقط ، وتبقى الرموز المحيطة سليمة. في تنسيق التحويل 8 بت ، إذا كان المؤشر يشير إلى بايت يبدأ بـ 10xxxxxx (في الترميز الثنائي) ، هناك حاجة إلى واحد إلى ثلاث انتقالات عكسية لإيجاد بداية الحرف.

ترميز utf 8

اتساق

اتحاد يونيكود يدعم بشكل كامل3 أشكال من الترميزات. من المهم عدم معارضة utf-8 و Unicode ، لأن كل تنسيقات التحويل هي تطبيقات شرعية بالتساوي لنماذج تشفير أحرف Unicode.

البايت التوجه

لتمثيل رمز UTF-32 ، تحتاج إلى وحدة واحدة من الشفرة 32 بت تتطابق مع شفرة Unicode. UTF-16 - من وحدة إلى وحدتين 16 بت. ويستخدم utf-8 ما يصل إلى 4 بايت.

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

طول متغير

utf-8 هو ترميز متفاوت الطول يتألف منوحدات تخزين المعلومات ذات 8 بتات التي تشير بتاتها ذات الترتيب العالي إلى جزء التسلسل الذي تنتمي إليه كل بايت مفرد. يتم تخصيص نطاق واحد من القيم للعنصر الأول في تتابع الشفرة ، والآخر للعناصر اللاحقة. هذا يضمن التشفير المنفصل.

ترميز الأحرف utf 8

ASCII

ترميز utf-8 يدعم أكواد ASCII بالكامل(0x00-0x7F). هذا يعني أن أحرف Unicode U + 0000-U + 007F يتم تحويلها إلى بايت واحد 0x00-0x7F utf-8 وبذلك تصبح غير مميزة عن ASCII. علاوة على ذلك ، لتجنب الغموض ، لا يتم استخدام القيم 0x00-0x7F بعد الآن في أي بايت من تمثيل أحرف Unicode. لترميز الرموز غير الأيديوغرافية بخلاف ASCII ، يتم استخدام تسلسل من وحدتي بايت. يتم تمثيل رموز النطاق U + 0800-U + FFFF بثلاث وحدات بايت ، أما الرموز الإضافية ذات الرموز الأكبر من U + FFFF فتتطلب أربعة بايت.

نطاق التطبيق

يفضل عادةً التشفير utf-8 في بروتوكول HTML وما شابهه.

أصبح XML المعيار الأول مع الدعم الكاملترميزات utf-8. المنظمات المعنية بالتوحيد ، أيضا ، أوصي به. تم حل مشكلة الدعم في عناوين URL بخلاف حروف ASCII عندما وافق اتحاد W3C ومجموعة IETF الهندسية على ترميز جميع عناوين URL حصريًا في utf-8.

التوافق مع ASCII يسهل الانتقال إلى جديدالبرمجيات. مع UTF-8 تعمل معظم برامج تحرير النصوص، بما في ذلك جيديت، إيماكس، بيديت، والكسوف، و "المفكرة" في نظام التشغيل ويندوز. أي شكل آخر من أشكال ترميز Unicode لا يمكن أن يفخر مثل هذا الدعم من الأداة.

ميزة الترميز هو أنهيتكون من تسلسل من البايتات. باستخدام سلاسل utf-8 ، من السهل العمل في لغة C وغيرها من لغات البرمجة. هذا هو الشكل الوحيد للتشفير الذي لا يتطلب وضع علامة على ترتيب البايتات BOM أو تعريف الترميز في XML.

أتش تي أم أل ترميز utf 8

تزامن الذاتي

في بيئة باستخدام معالجة الأحرف 8 بت ، بالمقارنة مع غيرها من ترميزات متعددة البايت ، فإن utf-8 له المزايا التالية:

  • يحتوي البايت الأول من تسلسل التعليمات البرمجية على معلومات حول طوله. هذا يزيد من كفاءة البحث المباشر.
  • من الأسهل العثور على بداية الحرف ، حيث أن البايت الأولي يقتصر على نطاق ثابت من القيم.
  • لا يوجد تقاطع لقيم البايت.

مقارنة بين المزايا

utf-8-encoding مضغوط. ولكن عند تطبيق ترميز أحرف شرق آسيا (الصينية ، اليابانية ، الكورية ، استخدام الأحرف الصينية) يتم استخدام تسلسلات 3 بايت. كما أن utf-8-encoding أقل شأناً من أشكال الترميز الأخرى من خلال سرعة المعالجة. ينتج عن فرز سلسلة ثنائية نفس النتيجة مثل فرز ثنائي Unicode.

مخطط تشفير الحروف

يتكون نظام ترميز الأحرف من نموذجترميز الأحرف ، وطريقة لترتيب وحدات البايت لكل وحدة بكسل. لتحديد نظام التشفير بمعيار Unicode ، يتم توفير استخدام علامة ترتيب البايت الأولي (BOM ، علامة ترتيب البايت).

عندما يتم تمكين BOM في utf-8 ، وظيفة التسميةيقتصر فقط على الإشارة إلى استخدام نموذج الترميز. لا توجد مشاكل في تحديد ترتيب البايتات في utf-8 ، لأن حجم وحدة التشفير الخاص بها هو بايت واحد. استخدام BOM لنموذج التشفير هذا ليس إلزامياً ولا موصى به. يمكن أن يحدث BOM في نصوص محولة من ترميزات أخرى تستخدم علامة ترتيب البايت ، أو من أجل توقيع ترميز utf-8. وهو تسلسل من 3 بايت من EF16 BB16 BF16.

ملف في ترميز utf 8

كيفية ضبط الترميز utf-8

في HTML ، يتم تعيين ترميز utf-8 باستخدام التعليمة البرمجية التالية:

رئيس

˂meta http-equiv = "Content-Type" content = "text / html؛ charset = utf-8" ˂

في PHP ، يتم تحديد ترميز utf-8 باستخدام الدالة header () في بداية الملف بعد تعيين قيمة مستوى إخراج الخطأ:

Ph؟

error_reporting (-1)؛

header ("Content-Type: text / html؛ charset = utf-8")؛

للاتصال بقواعد MySQL ، يتم تعيين ترميز utf-8 كما يلي:

Ph؟

mysql_set_charset ("utf8")؛

في ملفات CSS ، يتم تحديد ترميز الأحرف utf-8 على النحو التالي:

charset "utf-8"؛

باستثناء كما utf 8

عند حفظ الملفات من جميع الأنواع ، حددترميز utf-8 دون BOM ، وإلا فإن الموقع لن يعمل. للقيام بذلك ، في برنامج DreamWeave ، تحتاج إلى تحديد عنصر القائمة "تعديلات - خصائص الصفحة - العنوان / الترميز" ، وتغيير الترميز إلى utf-8. بعد ذلك ، يجب إعادة تحميل الصفحة ، وإلغاء تحديد المربع "Connect Unicode Signatures (BOM)" وتطبيق التغييرات. إذا تم إدخال أي نص على الصفحة أو في قاعدة البيانات بواسطة نموذج ترميز آخر ، فيجب إعادة إدخاله أو إعادة ترميزه. عند العمل مع التعبيرات العادية ، يلزم استخدام معدّل u.

يمكنك أيضًا حفظ الملف بترميز utf-8 في Windows Notepad. بعد تحديد عنصر القائمة "ملف - حفظ باسم ..." قم بتعيين نموذج الترميز الضروري وحفظ الملف بترميز utf-8.

في نص محرر المفكرة ++، إذا كان ترميز يختلف عن UTF-8، عنصر القائمة "تحويل إلى UTF-8 بدون BOM» تغيير الطابع وحفظ في ترميز UTF-8.

ترميز utf 8 دون بوم

لا يوجد بديل

في سياق العولمة ، عندما السياسية ويتم مسح حدود اللغة ، ومجموعات من الرموز التي لها خصائص محلية تصبح أقل فائدة. Unicode هو مجموعة الأحرف الوحيدة التي تدعم جميع التوطين. و utf-8 هو مثال على التنفيذ الصحيح لـ Unicode ، والتي:

  • يدعم مجموعة واسعة من الأدوات ، بما في ذلك التوافق مع ترميز ASCII ؛
  • مقاومة لفساد البيانات ؛
  • بسيطة وفعالة في المعالجة ؛
  • لا يعتمد على المنصة.

مع ظهور مناقشة utf-8 حول أي نوع من الترميز أو مجموعة الأحرف هو أفضل ، أصبحت بلا معنى.

</ p>
  • التقييم: