سؤال

الأسلوب المعتاد URL ترميز unicode الحرف هو تقسيمه إلى 2 %سمو رموز.(\u4161 => %41%61)

لكن كيف unicode الموقر عند فك?كيف يمكنك أن تعرف أن %41%61 هو \u4161 مقابل \x41\x61 ("Aa")?

8-بت الشخصيات, التي تتطلب ترميز يسبقه %00?

أو النقطة التي أحرف unicode المفترض أن تكون فقدت/الانقسام ؟

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

المحلول

وفقا ويكيبيديا:

القياسية الحالية

عام URI جملة ولايات جديدة URI مخططات التي تنص على تمثيل البيانات الشخصية في URI يجب ، تأثير تمثل الأحرف من تحفظ دون ترجمة ، و يجب تحويل جميع شخصيات بايت وفقا UTF-8 ثم في المئة ترميز تلك القيم.وكان هذا الشرط قدم في كانون الثاني / يناير 2005 نشر RFC 3986.أوري مخططات قدم قبل هذا التاريخ لا المتضررة.

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

غير القياسية تطبيقات

يوجد ترميز غير قياسي على أحرف Unicode:%uxxxx ، حيث xxxx هو Unicode قيمة تمثيل أربعة أرقام ست عشرية.هذا السلوك لم يتم تحديد أي RFC و قد تم رفضه من قبل W3C.الثالث الطبعة ECMA-262 لا يزال يتضمن الهروب(سلسلة) وظيفة يستخدم هذا بناء الجملة ، ولكن أيضا encodeURI(uri) وظيفة أن يحول إلى UTF-8 ، في المئة-بترميز كل الثماني.

يبدو تماما إلى الشخص كتابة unencode الطريقة ليست معايير متعة ؟

نصائح أخرى

ما أفعله دائما هو أول UTF-8 ترميز Unicode السلسلة لجعلها سلسلة من 8 بت الأحرف قبل هروبه أي من تلك مع %سمو.

P. S.- أنا يمكن أن نأمل فقط غير القياسية تطبيقات (%uxxxx) هي قليلة ومتباعدة.

منذ أوري أدخلت قبل unicode كان حولها أو على الأقل تستخدم على نطاق واسع ، أتصور أن هذا هو التنفيذ سؤال محدد.UTF-8 ترميز النص الخاص بك ، ثم الهروب التي في العادي يبدو وكأنه فكرة أفضل, منذ ذلك تماما إلى الوراء متوافقة مع أي ASCII/ANSI نظم في المكان, على الرغم من أنك قد تحصل على الغريب غريب حرف أو اثنين.

على الطرف الآخر, لفك, كنت unescape النص الخاص بك, والحصول على UTF-8 سلسلة.إذا كان شخص ما باستخدام نظام قديم يحاول أن يرسل لك بعض البيانات في ASCII/ANSI هناك أي ضرر ، (تقريبا) UTF-8 ترميز بالفعل.

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