tigtools

מקודד / מפענח URL

קודד טקסט לשימוש בכתובת URL, או הפוך קידודים בסגנון %20 חזרה לטקסט קריא. בחר Component עבור ערך בודד או Full URL עבור כתובת מלאה.

פועל בדפדפן שלך ללא הרשמה

כיוון
מה ברצונך לקודד?

רכיב (encodeURIComponent) מקודד הכול מלבד אותיות, ספרות ואת התווים - _ . ! ~ * ' ( ). מתאים לערך query בודד, שדה טופס או מקטע נתיב.

איך להשתמש בו

  1. בחר קידוד או פענוח.
  2. בחר Component עבור ערך בודד (כגון פרמטר שאילתה אחד) או Full URL עבור כתובת מלאה.
  3. הקלד או הדבק את הטקסט שלך. התוצאה מופיעה מיד בצד ימין (או למטה בטלפונים).
  4. העתק את התוצאה, או השתמש ב״השתמש בפלט כקלט״ כדי להפוך את הפעולה ולבדוק שהתוצאה חוזרת למקור.

איך זה עובד

כתובות URL יכולות להכיל רק קבוצה מוגבלת של תווי ASCII. כל שאר התווים, כולל רווחים, אותיות עם סימני הטעמה ואימוג'ים, נכתבים כקידוד אחוזים: התו מומר לבתים של UTF-8, וכל בית הופך ל־% ואחריו שתי ספרות הקסדצימליות. רווח הופך ל־%20, é הופך ל־%C3%A9 ו־€ הופך ל־%E2%82%AC.

מצב Component משתמש ב־encodeURIComponent וב־decodeURIComponent של JavaScript. הוא מקודד כל תו בעל משמעות מיוחדת בכתובת URL, כולל / ? # & = + : ו־@, כך שניתן למקם את התוצאה בבטחה בתוך ערך של שאילתה או מקטע נתיב יחיד. הוא משאיר ללא שינוי רק את A–Z, a–z, 0–9 ואת התווים - _ . ! ~ * ' ( ).

מצב Full URL משתמש ב־encodeURI וב־decodeURI. הוא מניח שהקלט הוא כבר כתובת URL מלאה, ומשאיר את התווים השמורים ; , / ? : @ & = + $ # ללא שינוי, כך שהכתובת ממשיכה לעבוד. בעת פענוח, decodeURI גם משאיר את הקידודים של התווים השמורים האלה כפי שהם: %2F נשאר %2F, כי הפיכתו ל־/ הייתה משנה את משמעות כתובת ה־URL.

האפשרות form-data פועלת לפי application/x-www-form-urlencoded, הפורמט שהדפדפנים משתמשים בו בשליחת טפסי HTML: רווח נכתב כ־+ במקום %20. בעת פענוח באפשרות זו, כל + הופך לרווח; סימן פלוס אמיתי חייב להיכתב אז כ־%2B.

קלט שגוי לעולם לא נמחק. אם אחרי % אין שתי ספרות הקסדצימליות, או שרצף קידודים אינו מהווה UTF-8 תקין, הכלי מראה היכן הבעיה ומשאיר את הטקסט שלך כדי שתוכל לתקן אותו.

דוגמאות

הכנסת ערך למחרוזת שאילתה

כדי לחפש “Rock & Roll” בכתובת https://example.com/search?q=…, קודדו רק את הערך במצב Component: Rock%20%26%20Roll. בלי קידוד, התו & מסיים את הפרמטר q ומתחיל פרמטר חדש בשם “ Roll”.

תיקון כתובת URL עם רווחים וסימני הטעמה

במצב Full URL, הכתובת https://example.com/menu/crème brûlée.html הופכת ל־https://example.com/menu/cr%C3%A8me%20br%C3%BBl%C3%A9e.html. הלוכסנים והנקודתיים נשארים כפי שהם, כך שהקישור עדיין עובד.

קריאת נתוני טופס שנרשמו ביומן

יומן שרת מציג name=Jane+Doe&city=S%C3%A3o+Paulo. פענחו אותו במצב Component עם האפשרות “התייחס ל־+ כאל רווח” מופעלת, כדי לקרוא name=Jane Doe&city=São Paulo.

שאלות נפוצות

מה ההבדל בין encodeURI לבין encodeURIComponent?

הפונקציה encodeURIComponent מקודדת את התווים שמפרידים בין חלקי כתובת URL (/ ? # & = + : @ ואחרים), ולכן היא מיועדת לרכיב אחד בתוך כתובת URL. הפונקציה encodeURI משאירה את התווים האלה, ולכן היא מיועדת לכתובת URL מלאה. שימוש ב־encodeURI על ערך שאילתה הוא באג נפוץ: התווים & או = בתוך הערך לא יקודדו וישברו את מחרוזת השאילתה.

האם רווח צריך להיות %20 או +?

בנתיב של כתובת URL רווח הוא תמיד %20. במחרוזת שאילתה, שניהם מופיעים: %20 תקין בכל מקום, בעוד ש-+ פירושו רווח רק בנתונים מקודדים של טופס (application/x-www-form-urlencoded), שזו הדרך שבה טפסי HTML ומסגרות שרת רבות קוראות מחרוזות שאילתה. אם אינך בטוח, השתמש ב-%20.

מדוע אני מקבל שגיאה בעת הפענוח?

הפענוח נכשל כאשר סימן % אינו מלווה בשתי ספרות הקסדצימליות (למשל “50% off”), או כאשר הבתים המקודדים אינם UTF-8 תקין, מה שבדרך כלל אומר שהטקסט קודד עם ערכת תווים ישנה יותר כמו Latin-1 (é כ-%E9 במקום %C3%A9). הודעת השגיאה מציגה את מיקום הבעיה.

מדוע %2F לא הפך לקו נטוי במצב Full URL?

decodeURI משאיר במכוון קידודים של תווים שמורים כמו / ? # & ו-=, מכיוון שפענוחם עלול לשנות את אופן חלוקת ה-URL לחלקים. השתמש במצב Component כדי לפענח כל קידוד.

אילו תווים אף פעם לא מקודדים?

שני המצבים משאירים את A–Z, a–z, 0–9 ואת - _ . ! ~ * ' ( ) ללא שינוי. מצב Full URL משאיר בנוסף גם את ; , / ? : @ & = + $ ו-# ללא שינוי.

פרטיות

הקידוד והפענוח מתבצעים במלואם בדפדפן שלך באמצעות פונקציות JavaScript המובנות. הטקסט וכתובות ה-URL שלך אינם מועלים, מאוחסנים או נכללים בניתוח נתונים.