ما هي مجموعة الأحرف التي يجب أن أفترض أن الأحرف المشفرة في عنوان URL موجودة فيها؟

StackOverflow https://stackoverflow.com/questions/140549

  •  02-07-2019
  •  | 
  •  

سؤال

آر إف سي 1738 يحدد بناء الجملة لعناوين URL، ويذكر ذلك

تتم كتابة عناوين URL فقط مع الأحرف القابلة للطباعة الرسومية من
مجموعة أحرف مشفرة US-ASCII.الثمانيات 80-FF السداسية غير السداسية ليست
تستخدم في الولايات المتحدة-ASCII ، و Octets 00-1F و 7F تمثل سداسي عشري
أحرف التحكميجب تشفير هذه.

ومع ذلك، فهو لا يذكر ما هي مجموعة التعليمات البرمجية التي تمثلها هذه الثمانيات.

آر إف سي 2396 يبدو أنه يحاول تحسين الوضع، ولكن:

بالنسبة لتسلسلات الأحرف الأصلية التي تحتوي على أحرف غير ASCII ، فإن الموقف أكثر صعوبة.من المتوقع أن توفر بروتوكولات الإنترنت التي تنقل تسلسل Octet التي تهدف إلى تمثيل تسلسل الأحرف طريقة ما لتحديد Charset المستخدم ، إذا كان هناك أكثر من واحد [RFC2277].ومع ذلك ، لا يوجد حاليًا أي حكم داخل بناء جملة URI العام لتحقيق هذا التعريف.قد يتطلب مخطط URI الفردي حافلة واحدة ، أو تحديد charset الافتراضي ، أو توفير وسيلة للإشارة إلى Charset المستخدمة.

من المتوقع أن يتم تطوير علاج منهجي لترميز الأحرف داخل URI كتعديل مستقبلي لهذه المواصفات.

هل هناك أي طريقة لا لبس فيها يمكن للعميل من خلالها تحديد مجموعة الأحرف التي سيفسر بها الثمانيات المشفرة، أو التي يمكن للخادم من خلالها تحديد ما يستخدمه العميل للتشفير؟

يبدو لي أن معظم الخوادم تستخدم UTF-8 بشكل افتراضي، ولكن يبدو أن هذا خيار فعلي أكثر من كونه خيارًا محددًا.

هل كانت مفيدة؟

المحلول

وفقًا لاقتباسك، فإن عناوين URL هي ASCII.هذا كل شئ.

URIs OTOH، تسمح بمجموعات محارف أكبر؛عادة UTF-8 كما قلت بنفسك.

النقطة التي يجب تذكرها هي أن عناوين URL هي مجموعة فرعية من عناوين URI.ولذلك فإن السؤال الحقيقي هو، أي مما تكتبه هو ما تكتبه في المتصفح؟

أعتقد أنه يمكنك كتابة عنوان URI، ويجب أن يبذل المتصفح قصارى جهده للتحويل إلى عنوان URL (وهو ما يدعم HTTP/1.1، AFAICR).بالنسبة للأحرف غير ASCII، فهذا يعني الرموز السداسية، والتي عادةً ما تكون ترميز UTF-8.

نصائح أخرى

أعتقد أن المواصفات التي تبحث عنها هي آر إف سي 3987, ، الذي يصف IRIs - معرفات الموارد الدولية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top