logo

מקודד URL של Java

Java URLEncoder היא מחלקת שירות המשמשת לקידוד כתובות האתרים (Uniform Resource Locator). אמינות ואבטחה מובטחות באמצעות קידוד של כתובת URL. כאשר המשתמש מבקש אתר מסוים באמצעות שיטת get, פרמטרי הטופס והערכים שלהם מתווספים לאחר ה-'?' היכנס לכתובת האתר. עם זאת, הבעיה מתעוררת כאשר משתמשים בתווים מיוחדים בערכים שאינם מתפרשים. בדרך כלל, HTML מטפל בחלק הקידוד באופן אוטומטי על ידי עיבוד התווים המיוחדים והמרתם לתווים המותרים לטיפול חלק בכל הפעולות. עם זאת, זה לא מאשר את הקידוד המדויק ולכן איננו יכולים להסתמך רק על תכונות HTML, ולכן כדי לקודד את כתובות האתרים במפורש אנו משתמשים במחלקה URL Encoder של Java.

חשוב לעקוב אחר הכללים הנתונים בעת קידוד מחרוזת:

  1. התווים האלפביתיים מ-'a' עד 'z', או מ-'A' ל-'Z' והספרות מ-'0' עד '9' נשארות זהות.
  2. התווים האלפאנומריים וכמה תווים מיוחדים כגון '*', '_', '-' ו-'.' אל תשתנה.
  3. כל הרווחים מומרים לסימני '+'.
  4. W3C ממליצה להשתמש ב-'UTF-8' למטרות קידוד. כל שאר התווים מקודדים על ידי בייט אחד או יותר באמצעות ערכת הקידוד שצוינה. הם מומרים במחרוזת של שלושה תווים בצורת %xy, כאשר xy מייצגת את הייצוג ההקסדצימלי של תו הקידוד.

דוגמה 1:

אם בקשת המשתמש היא כזו שערך הפרמטר מכיל תווים ורווחים מיוחדים כ

חורף משולש

נקודת u@Java T

אם הקידוד שבו נעשה שימוש הוא UTF-8 שהוא הנפוץ ביותר בשימוש, הסימן '@' יומר ל'%40' והרווחים יומרו לסימני '+'. המחרוזת המקודדת נראית כך:

אוספי java java

u%40Java+T+Point

דוגמה 2:

אם בקשת המשתמש היא כזו שערך הפרמטר אינו מכיל תווים מיוחדים ורווחים כ

u@JavaTpoint

המחרוזת המקודדת נראית כך:

python ממיר בתים למחרוזת

u%40JavaTPoint

כתובת אתר קידוד

על מנת לקודד כתובת URL מחלקה Java URLEncoder מספקת את שיטת encode() .

URLEncoder.encode( )

השיטה מתרגמת מחרוזת לפורמט מקודד של application/x-www-form-url באמצעות ערכת קידוד ספציפית. הוא משיג את הבתים עבור תווים לא בטוחים באמצעות ערכת הקידוד שסופקה.

תחביר:

 public static String encode(String s, String enc) throws UnsupportedEncodingException 

הערה: World Wide Web Consortium ממליץ להשתמש בסכימת הקידוד UTF-8. אחרת, זה גורם לאי התאמה שונים.

פרמטרים:

s: המחרוזת לתרגום.

enc: שם קידוד התווים הנתמך כגון 'UTF-8'.

החזרות: זה מחזיר את המחרוזת המתורגמת.

sql טבלאות מרובות בחר

זורקים: 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