ממיר חינם

מקודד כתובת URL / מפענח

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

אוֹ

אודות כלי זה

קידוד כתובות אתרים (רשמית קידוד אחוזים, המוגדר ב-RFC 3986) מתרגם תווים בעלי משמעות מיוחדת בכתובות URL - רווחים, לוכסנים, סימני אמפרסנד, סימני גיבוב - לצורה בטוחה באמצעות סימני אחוזים ואחריהם ספרות hex. תו הרווח הופך ל-%20 (או + בהקשרים מקודדים בצורה), האמפרסנד הופך ל-%26 וכן הלאה. ללא קידוד זה, תווים מיוחדים יתפרשו כתחביר כתובת אתר ולא כנתונים מילוליים, שבירת כתובת ה-URL או גרימת התנהגות לא מכוונת.

קיימים שני קידודים קשורים אך ברורים. הקידוד הסטנדרטי של רכיב כתובת האתר משתמש ב-%-escapes עבור כל מה שמחוץ לקבוצת התווים הבלתי שמורה: A-Z, a-z, 0-9, מקף, קו תחתון, נקודה, טילדה. הגרסה המקודדת בטופס (application/x-www-form-urlencoded) מתייחסת בנוסף לרווחים כסימני פלוס ומשתמשת בכללים שונים עבור כמה תווים אחרים. ה-encodeURIConponent של JavaScript משתמש בקידוד הרכיבים הקפדני; encodeURI משתמש בצורה מתירנית יותר השומרת על תווי מבנה כתובת האתר.

כלי זה מציע גם קידוד וגם פענוח. מצב קידוד עוטף כל תו שדורש אסקייפ בפורמט %HH; מצב פענוח הופך את השינוי. שניהם פועלים לחלוטין בדפדפן שלך באמצעות פונקציות מובנות של כתובת URL של JavaScript, כך שלא נשלחים נתונים לשום מקום.

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

בכל פעם שנתונים כלולים ב-URL - פרמטרים של מחרוזת שאילתה, מקטעי נתיב המכילים קלט משתמש, יעדי הפניה מחדש - נדרש קידוד מתאים. כשלון בקידוד מייצר כתובות URL שנשברות כאשר מופיעים תווים מיוחדים, דולפות גבולות פרמטרים למחרוזות שאילתות (הפיכת &x=1 לפרמטר נפרד), או נחסמות על ידי שרתי אינטרנט כבקשות שגויות.

פענוח הוא הפוך: חילוץ הנתונים המקוריים מכתובת אתר מקודדת. סרגלי הכתובת של הדפדפן מציגים לעתים קרובות כתובות אתרים בצורה מקודדת; פענוח חושף את מה שבאמת נועד. רישום, ניפוי באגים וניתוח אבטחה נהנים כולם מכתובות URL מפוענחות המציגות את הפרמטרים והנתיבים המקוריים.

כיצד להשתמש

הדבק מחרוזת, בחר כיוון.

  1. בחר קידוד או פענוח: Encode עוטף תווים לא בטוחים בפורמט %HH. פענוח היפוך %HH בורח חזרה לתווים מילוליים.
  2. הוסף טקסט קלט: הדבק את המחרוזת כדי לקודד או לפענח. עבור קידוד, זה בדרך כלל ערך מילולי עם רווחים, תווים מיוחדים או תוכן שאינו ASCII. לפענוח, מדובר ב-URL או ברכיב כתובת URL המכילים %HH escapes.
  3. המרה: הכלי מחיל encodeURIComponent או decodeURIComponent. פלט מקודד בטוח להטמעה בכתובת URL; פלט מפוענח הוא הערך המילולי המקורי.
  4. העתק או הורד: השתמש בתוצאה בכל מקום שאתה צריך. ערכים מקודדים מתאימים לכתובות URL; ערכים מפוענחים חושפים את הנתונים המקוריים.

מקרי שימוש נפוצים

פרטים טכניים

encodeURIConponent מקודד כל תו מחוץ לקבוצה הבלתי שמורה [A-Za-z0-9-_.~]. רווחים הופכים ל-%20, סימני פלוס הופכים ל-%2B, סימני שווה הופכים ל-%3D, וכן הלאה. תווים מחוץ ל-ASCII מקודדים תחילה ב-UTF-8 ולאחר מכן כל בייט עובר %-escape.

encodeURI מתירני יותר ומיועד לכתובות URL מלאות ולא לרכיבים. זה לא בורח /, ?, &, =, #, ועוד כמה אחרים כי לתווים אלה יש משמעות תחביר של כתובת URL. להטמעת נתוני משתמש בכתובת URL, encodeURIConponent היא כמעט תמיד הבחירה הנכונה.

decodeURIComponent הופך %-escapes, ומאמת שכל escape בנוי היטב ושהבתים המתקבלים יוצרים UTF-8 חוקי. קלט שגוי זורק שגיאה במקום לייצר זבל.

שיטות עבודה מומלצות

שאלות נפוצות

אילו תווים זקוקים לקידוד כתובת אתר?
תווים שמורים (&, =, ?, #, /, :, @) ותווים לא בטוחים (רווחים, <, >, {, }, |, ^, ~, [, ], `) חייבים להיות מקודדים. תווים אלפאנומריים ו-_.~ בטוחים ואינם זקוקים לקידוד.
מה ההבדל בין encodeURI ל-encodeURIConponent?
encodeURI מקודד כתובת URL מלאה אך שומר על תווים שמורים (://?#). encodeURIComponent מקודד הכל מלבד -_.!~*'() - השתמש בו עבור ערכי פרמטרים של שאילתה. כלי זה מציע את שני המצבים.
כיצד מקודדים רווחים בכתובות URL?
ניתן לקודד רווחים כ-%20 (קידוד אחוז סטנדרטי) או + (קידוד טופס). %20 נכון עבור נתיבי כתובת אתר, בעוד ש+ משמש במחרוזות שאילתות מטפסי HTML. כלי זה משתמש ב-%20 כברירת מחדל.
האם אני יכול לקודד תווי Unicode?
כן. תווי Unicode מקודדים תחילה ל-UTF-8 בתים, ולאחר מכן כל בייט מקודד באחוזים. לדוגמה, '日' הופך ל-%E6%97%A5 (שלושה בתים UTF-8, כל אחד מקודד באחוזים).
האם עלי להשתמש ב-encodeURI או ב-encodeURIConponent?
כמעט תמיד encodeURIComponent. השתמש ב-encodeURI רק אם יש לך כתובת URL מלאה ואתה רוצה לשמר את המבנה שלה - בדרך כלל נדיר מכיוון שאתה בונה כתובות URL מרכיבים בכל מקרה.
האם הנתונים שלי מועלים לשרת?
לא. הקידוד והפענוח של כתובת האתר מתרחשים לחלוטין בדפדפן שלך.
האם הוא מטפל באימוג'י Unicode?
כן. אימוג'י הם רצפי UTF-8 מרובי בתים; המקודד מייצר שרשרת של %-escaped bytes שמפענחים מרכיבים מחדש כראוי בחזרה לאמוג'י המקורי.
מה אם לקלט שלי יש מחרוזות שנראות %HH שאינן מקודדות בפועל?
הקידוד הופך כל % ל-%25, ואז מחיל מחדש את ה-Escape עבור השאר. פענוח קלט קפדני זורק שגיאות ב-escapes שגוי; מחרוזות בעלות מראה דו-משמעי עלולות לפענח באופן שגוי.