Java URLEncoder هي فئة أدوات مساعدة تستخدم لتشفير عناوين URL (محدد موقع الموارد الموحد). يتم ضمان الموثوقية والأمان باستخدام ترميز URL. عندما يطلب المستخدم موقعًا معينًا من خلال طريقة get، تتم إضافة معلمات النموذج وقيمها بعد علامة '؟' قم بتسجيل الدخول إلى عنوان URL. ومع ذلك، تنشأ المشكلة عند استخدام أحرف خاصة في القيم التي لم يتم تفسيرها. بشكل عام، يتعامل HTML مع جزء الترميز تلقائيًا عن طريق معالجة الأحرف الخاصة وتحويلها إلى الأحرف المسموح بها للتعامل السلس مع كافة العمليات. ومع ذلك، فهو لا يؤكد التشفير الدقيق، وبالتالي لا يمكننا الاعتماد فقط على ميزات HTML، وبالتالي لتشفير عناوين URL بشكل صريح نستخدم فئة URL Encoder الخاصة بـ Java.
من المهم اتباع القواعد المحددة أثناء تشفير السلسلة:
- تظل الأحرف الأبجدية من 'a' إلى 'z' أو من 'A' إلى 'Z' والأرقام من '0' إلى '9' كما هي.
- الأحرف الأبجدية الرقمية وبعض الأحرف الخاصة مثل '*' و'_' و'-' و'.' لا تغير.
- يتم تحويل جميع المسافات إلى علامات '+'.
- توصي W3C باستخدام 'UTF-8' لأغراض التشفير. يتم تشفير كافة الأحرف الأخرى بواسطة بايت واحد أو أكثر باستخدام نظام التشفير المحدد. يتم تحويلها في سلسلة مكونة من ثلاثة أحرف من النموذج %xy، حيث يمثل xy التمثيل الست عشري لحرف الترميز.
مثال 1:
إذا كان طلب المستخدم هو أن تحتوي قيمة المعلمة على أحرف خاصة ومسافات مثل
سلسلة من الصفيف في ج
u@نقطة جافا T
إذا كان التشفير المستخدم هو UTF-8 وهو الأكثر استخدامًا، فسيتم تحويل علامة '@' إلى '%40' وسيتم تحويل المسافات إلى علامات '+'. تبدو السلسلة المشفرة كما يلي:
u%40Java+T+نقطة
مثال 2:
إذا كان طلب المستخدم بحيث لا تحتوي قيمة المعلمة على أحرف خاصة ومسافات مثل
mylivecricket في
u@JavaTpoint
تبدو السلسلة المشفرة كما يلي:
u%40JavaTPoint
الفرق بين النمر والأسد
ترميز URL
من أجل تشفير عنوان URL، توفر فئة Java URLEncoder طريقة encode().
URLEncoder.encode()
تقوم الطريقة بترجمة سلسلة إلى تنسيق مشفر application/x-www-form-url باستخدام نظام ترميز محدد. فهو يحصل على بايتات الأحرف غير الآمنة باستخدام نظام الترميز المتوفر.
بناء الجملة:
public static String encode(String s, String enc) throws UnsupportedEncodingException
ملاحظة: يوصي اتحاد شبكة الويب العالمية بضرورة استخدام نظام التشفير UTF-8. خلاف ذلك، فإنه يسبب عدم التوافق المختلفة.
حدود:
س: السلسلة المراد ترجمتها.
أنواع البيانات المرجعية في جافا
إنك: اسم ترميز الأحرف المدعوم مثل 'UTF-8'.
عائدات: تقوم بإرجاع السلسلة المترجمة.
رميات: يتم طرح UnsupportedEncodingException عندما يكون نظام الترميز المسمى غير مدعوم.
UrlEncoder.java
import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLEncoder; public class UrlEncoder { public static void main(String[] args) throws MalformedURLException, UnsupportedEncodingException { String baseUrl = 'https://www.javatpoint.com/'; // String to be encoded as requested by the user String query = ' u@ java T point'; System.out.println(' URL without any encoding : ') ; // creating an object of the URL class URL url = new URL(baseUrl + query) ; System.out.println( url ) ; // using the encode( ) method to encode the URL System.out.println( ' URL after encoding : ' ) ; url = new URL( baseUrl + URLEncoder.encode( query, 'UTF-8' ) ) ; System.out.println( url ) ; } }
انتاج:
URL without any encoding: https://www.javatpoint.com/ u@ java T point URL after encoding: https://www.javatpoint.com/+u%40+java+T+point