مرجع حرفي رقمي

يُعدّ مرجع الحرف الرقمي ( NCR ) بنيةً شائعةً في لغة ترميز SGML ولغات الترميز المشتقة منها، مثل HTML و XML . ويتألف من سلسلة قصيرة من الأحرف ، يُمثّل كلٌّ منها حرفًا واحدًا. ومنذ WebSgml و XML و HTML 4 ، تُستخدم نقاط ترميز مجموعة الأحرف العالمية (UCS) الخاصة بنظام Unicode . تُستخدم مراجع الأحرف الرقمية عادةً لتمثيل الأحرف التي لا يُمكن ترميزها مباشرةً في مستندٍ مُعيّن (على سبيل المثال، لأنها أحرف دولية لا تتناسب مع مجموعة الأحرف ذات 8 بت المُستخدمة، أو لأنها تحمل معنىً نحويًا خاصًا في اللغة). وعندما يُفسّر قارئٌ مُدركٌ لعلامات الترميز المستند، يُعامل كل مرجع حرف رقمي كما لو كان الحرف الذي يُمثّله.

أمثلة

في لغات SGML وHTML وXML، جميع ما يلي عبارة عن مراجع رقمية صالحة للحرف اليوناني الكبير سيجما

المرجع الرقمي للحرف U+03A3 Σ الحرف اليوناني الكبير سيجما ( 3A3 16 = 931 10 )
حرف يونيكودقاعدة عدديةالمرجع العددي في لغة الترميزتأثير
U+03A3عشري& #931;Σ
U+03A3عشري& #0931;Σ
U+03A3النظام الست عشري& #x3A3;Σ
U+03A3النظام الست عشري& #x03A3;Σ
U+03A3النظام الست عشري& #x3a3;Σ

في لغات SGML وHTML وXML، جميع ما يلي عبارة عن مراجع رقمية صالحة للحرف اللاتيني الكبير AE

المرجع الرقمي للحرف U+00C6 Æ الحرف اللاتيني الكبير AE
حرف يونيكودقاعدة عدديةالمرجع العددي في لغة الترميزتأثير
U+00C6عشري& #198;Æ
U+00C6النظام الست عشري& xC6;Æ

في لغات SGML وHTML وXML، جميع ما يلي عبارة عن مراجع رقمية صالحة للحرف اللاتيني الصغير المدبب s

المرجع الرقمي للحرف U+00DF ß حرف لاتيني صغير حاد S
حرف يونيكودقاعدة عدديةالمرجع العددي في لغة الترميزتأثير
U+00DFعشري& #223;ß
U+00DFالنظام الست عشري& xDF;ß

قائمة بمراجع الأحرف الرقمية لأحرف ASCII القابلة للطباعة :

حرف يونيكودمرجع الأحرف (عشري)مرجع الأحرف (سداسي عشري)تأثير
U+0020& #32;& tx20;(فضاء)
U+0021& #33;& tx21;!
U+0022& #34;& Tx22;"
U+0023& #35;& tx23;8
U+0024& #36;& tx24;دولار
U+0025& #37;& tx25;%
U+0026& #38;& x26;و
U+0027& #39;& tx27;'
U+0028و #40؛& tx28;(
U+0029& #41;& tx29;)
U+002A& #42;& tx2A;*
U+002B& #43;& Tx2B;+
U+002C& #44;& tx2C;،
U+002D& #45;& tx2D;-
U+002E& #46;& tx2E;.
U+002F& #47;& #x2F;/
U+0030& #48;& #x30;0
U+0031& #49;& #x31;1
U+0032و #50؛& tx32;2
U+0033& #51;& #x33;3
U+0034& #52;& #x34;4
U+0035& #53;& #x35;5
U+0036& #54;& #x36;6
U+0037& #55;& #x37;7
U+0038& #56;& #x38;8
U+0039& #57;& #x39;9
U+003A& #58;& #x3A;:
U+003B& #59;& #x3B;؛
U+003C& #60;& mx3C;<
U+003D& #61;& #x3D;=
ش+003ه& #62;& #x3E;>
U+003F& #63;& #x3F;؟
U+0040& #64;و #x40;@
U+0041& #65;& #x41;أ
U+0042& #66;& tx42;ب
U+0043& #67;& #x43;ج
U+0044& #68;& x44;د
U+0045& #69;& x45;هـ
U+0046& #70;& x46;F
U+0047& #71;& x47;جي
U+0048& #72;& #x48;ح
U+0049& #73;& x49;أنا
U+004A& #74;& x4A;ج
U+004B& #75;& #x4B;ك
U+004C& #76;& #x4C;ل
U+004D& #77;& x4D;م
U+004E& #78;& #x4E;شمال
U+004F& #79;& x4F;يا
U+0050& #80;& tx50;P
U+0051& #81;& #x51;سؤال
U+0052& #82;& tx52;R
U+0053& #83;& #x53;S
U+0054& #84;& x54;تي
U+0055& #85;& tx55;يو
U+0056& #86;& x56;V
U+0057& #87;& tx57;دبليو
U+0058& #88;& #x58;X
U+0059& #89;& tx59;Y
U+005A& #90;& tx5A;Z
U+005B& #91;& tx5B;[
U+005C& #92;& tx5C;\
U+005D& #93;& tx5D;]
U+005E& 94;& #x5E؛^
U+005F& #95;& #x5F;_
U+0060& #96;& #x60;'
U+0061& #97;& #x61;أ
U+0062& #98;& x62;ب
U+0063& #99;& #x63;ج
U+0064و #100؛و x64؛د
U+0065& #101;& x65;هـ
U+0066& #102;& x66;و
U+0067& #103;& x67;ز
U+0068& #104;& #x68;ح
U+0069& #105;& x69;أنا
U+006A& #106;& x6A;ج
U+006B& #107;& #x6B;ك
U+006C& #108;& x6C;ل
U+006D& #109;& x6D;م
U+006E& #110;& #x6E;ن
U+006F& #111;& #x6F;o
U+0070& #112;& #x70;ص
U+0071& #113;& #x71;q
U+0072& #114;& tx72;ر
U+0073& #115;& #x73;s
U+0074& #116;& x74;ت
U+0075& #117;& tx75;u
U+0076& #118;& x76;v
U+0077& #119;& tx77;w
U+0078& #120;& #x78;x
U+0079& #121;& x79;y
U+007A& #122;& tx7A;z
U+007B& #123;& #x7B;{
U+007C& #124;& tx7C;|
U+007D& #125;& tx7D;}
U+007E& #126;& #x7E;~

مناقشة

تُعرَّف لغات الترميز عادةً باستخدام أحرف UCS أو Unicode. أي أن المستند يتكون، في أبسط مستوياته التجريدية، من سلسلة من الأحرف، وهي وحدات مجردة موجودة بشكل مستقل عن أي ترميز .

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

أحيانًا، ولأسباب تتعلق بالراحة أو بسبب قيود تقنية، تُشفّر المستندات باستخدام ترميز لا يستطيع تمثيل بعض الأحرف مباشرةً. على سبيل المثال، لا تستطيع الترميزات الشائعة الاستخدام والمبنية على معيار ISO 8859 تمثيل أكثر من 256 حرفًا فريدًا، كل حرف منها عبارة عن بايت واحد بحجم 8 بت .

نادراً ما يُسمح عملياً للمستندات باستخدام أكثر من ترميز واحد داخلياً، لذا يقع العبء عادةً على لغة الترميز لتوفير وسيلة لمؤلفي المستندات للتعبير عن الأحرف غير القابلة للترميز بأحرف قابلة للترميز. ويتم ذلك عموماً من خلال آلية "هروب" ما .

تتيح لغات الترميز القائمة على SGML لمؤلفي المستندات استخدام تسلسلات خاصة من الأحرف من نطاق ASCII (أول 128 نقطة ترميز من Unicode) لتمثيل أي حرف من أحرف Unicode أو الإشارة إليه ، بغض النظر عما إذا كان الحرف المُمثَّل متاحًا مباشرةً في ترميز المستند أم لا. تُعرف هذه التسلسلات الخاصة بمراجع الأحرف .

تُسمى مراجع الأحرف التي تستند إلى رمز UCS أو Unicode الخاص بالحرف المُشار إليه بمراجع الأحرف الرقمية . في HTML 4 وجميع إصدارات XHTML وXML، يمكن التعبير عن رمز الحرف إما كرقم عشري (أساس 10) أو كرقم سداسي عشري (أساس 16). الصيغة كالتالي:

الحرف U+0026 ( علامة العطف )، متبوعًا بالحرف U+0023 ( علامة الرقم )، متبوعًا بأحد الخيارات التالية:

  • رقم عشري واحد أو أكثر من الصفر (U+0030) إلى تسعة (U+0039)؛ أو
  • الحرف U+0078 ("x") متبوعًا برقم واحد أو أكثر من الأرقام السداسية العشرية، وهي من الصفر (U+0030) إلى تسعة (U+0039)، والحرف اللاتيني الكبير A (U+0041) إلى F (U+0046)، والحرف اللاتيني الصغير a (U+0061) إلى f (U+0066)؛

جميعها متبوعة بالحرف U+003B ( فاصلة منقوطة ). الإصدارات القديمة من لغة HTML لم تكن تسمح باستخدام الصيغة السداسية عشرية.

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

يوجد نوع آخر من مراجع الأحرف يُسمى مرجع كيان الأحرف ، والذي يسمح بالإشارة إلى الحرف باسمه بدلاً من رقمه. (تسمية الحرف تُنشئ كيان حرف ). يُعرّف HTML بعض كيانات الأحرف، ولكن ليس الكثير منها؛ أما باقي الأحرف فلا يمكن تضمينها إلا من خلال التشفير المباشر أو باستخدام مراجع الأحرف غير الرقمية (NCRs).

قيود

مجموعة الأحرف العالمية المحددة بواسطة ISO 10646 هي "مجموعة أحرف المستند" لـ SGML و HTML 4، لذلك بشكل افتراضي، يجب أن يكون أي حرف في مثل هذا المستند، وأي حرف مشار إليه في مثل هذا المستند، موجودًا في UCS.

في حين أن بناء جملة SGML لا يمنع الإشارات إلى نقاط الترميز غير الصالحة أو غير المعينة، مثل &#xFFFF;، فإن لغات الترميز المشتقة من SGML مثل HTML و XML يمكنها، وغالبًا ما تفعل، تقييد الإشارات الرقمية للأحرف إلى نقاط الترميز المعينة للأحرف فقط.

قد تُطبّق قيود أخرى لأسباب مختلفة. على سبيل المثال، في HTML 4، &#12;يُسمح باستخدام `<form feed>`، وهو مُشار إليه بحرف تحكم "تغذية النموذج" غير القابل للطباعة، لأن حرف تغذية النموذج مسموح به. أما في XML، فلا يُمكن استخدام حرف تغذية النموذج، حتى بالمُشار إليه. [ 1 ] كمثال آخر، لا يُسمح باستخدام `<form feed>`، وهو مُشار إليه بحرف تحكم آخر، في HTML أو XML، ولكن عند استخدامه في HTML، لا تُشير إليه مُتصفحات الويب عادةً كخطأ - إذ يُفسّره بعضها على أنه مُشار إليه بالحرف المُمثّل بالرمز 128 في ترميز Windows-1252 لأسباب تتعلق بالتوافق. يجب تمثيل هذا الحرف، "€"، بـ `<form feed>` في كود HTML مُتوافق مع المعايير. كمثال آخر، قبل نشر الإصدار الثاني من XML 1.0 في 6 أكتوبر 2000، كان XML 1.0 مبنيًا على إصدار أقدم من معيار ISO 10646، وكان يحظر استخدام الأحرف التي تزيد عن U+FFFD، باستثناء بيانات الأحرف، مما يجعل مرجعًا مثل (U+10000) غير قانوني. في XML 1.1 والإصدارات الأحدث من XML 1.0، يُسمح بهذا المرجع، لأن مجموعة الأحرف المتاحة قد تم توسيعها بشكل صريح.&#128;&#8364;&#65536;

تفرض لغات الترميز أيضًا قيودًا على أماكن ظهور مراجع الأحرف.

مشاكل التوافق

في الإصدارات الأولى من SGML و HTML ، كانت تُفسَّر مراجع الأحرف الرقمية وفقًا لترميز أحرف المستند، وليس وفقًا لترميز Unicode . بالنسبة للمستندات المكتوبة بالأحرف اللاتينية، لن تكون مراجع الأحرف الرقمية للأحرف بين x80 وx9F صحيحةً وفقًا لترميز Unicode ، ويجب إعادة ترميزها. كانت معايير HTML قبل الإصدار 4 تدعم فقط المستندات المكتوبة بالأحرف اللاتينية الغربية: قد يختلف التعامل مع مراجع الأحرف التي تزيد عن x7F بين التطبيقات والاتفاقيات الوطنية.

على سبيل المثال، كما ذُكر أعلاه، فإن المرجع الرقمي الصحيح لرمز اليورو "€" U+20ACعند استخدام يونيكود هو النظام العشري &#8364;والنظام الست عشري &#x20AC;. مع ذلك، عند استخدام أدوات تدعم تطبيقات HTML قديمة، قد يعمل المرجع &#128; (رمز اليورو في صفحة ترميز CP-1252 ) أو &#164;(رمز اليورو في ISO/IEC 8859-15 ).

كمثال آخر، إذا تم إنشاء نص باستخدام مجموعة أحرف MacRoman ، فسيتم تمثيل علامة الاقتباس المزدوجة اليسرى " برمز xD2. لن يظهر هذا بشكل صحيح في نظام يتوقع مستندًا مُشفّرًا بصيغة UTF-8 أو ISO 8859-1 أو CP-1252، حيث يشغل هذا الرمز الحرف Ò . المرجع الرقمي الصحيح لعلامة الاقتباس المزدوجة اليسرى " في HTML 4 والإصدارات الأحدث هو U+201C &#x201C;، لأن رمز UCS الخاص بها هو U+ 201C. في بعض الأنظمة، قد يتوفر أيضًا مرجع الحرف المُسمى .&ldquo;

انظر أيضاً

مراجع