איך קידוד URL עובד
בכתובות אינטרנט מותרים רק מעט תווים: אותיות לטיניות בלי סימנים, ספרות וכמה סימני פיסוק. כל השאר מקודד. ב-UTF-8 האות ש מורכבת מהבייטים D7 ו-A9, ולכן היא הופכת ל-%D7%A9. רווח הופך ל-%20, או ל-+ בטפסים.
מקודד
%D7%A9%D7%9C%D7%95%D7%9D %D7%9E%D7%AA%D7%9C %D7%90%D7%91%D7%99%D7%91
מפוענח
שלום מתל אביב
קודי ה-URL הנפוצים ביותר
%D7%90= א,%D7%9C= ל,%D7%A9= ש,%D7%AA= ת%D7%91= ב,%D7%99= י,%D7%A8= ר,%D7%9D= ם%E2%82%AC= €,%E2%80%99= ’,%E2%80%93= –%20= רווח,%2F= /,%3F= ?,%26= &,%25= %
כל אות עברית ב-UTF-8 תופסת שני בייטים, והם כמעט תמיד מתחילים ב-%D7. כך מזהים מיד טקסט עברי מקודד URL: שלום הופך ל-%D7%A9%D7%9C%D7%95%D7%9D. מערכות ישנות שומרות כל אות בבייט אחד של Windows-1255, למשל %F9%EC%E5%ED במקום שלום, ו-Mojibuster ממיר גם אותן.
מאיפה מגיע טקסט מקודד URL
- קישורים שהועתקו: הדפדפן מציג את
he.wikipedia.org/wiki/ישראלבצורה קריאה, אבל בהעתקה נשמר ללוח לעיתים קרובות%D7%99%D7%A9%D7%A8%D7%90%D7%9C. - טפסים ומעקב: מילות חיפוש ופרמטרי UTM נשמרים מקודדים ביומני שרת ובייצואי ניתוח נתונים, למשל
?q=%D7%A7%D7%A4%D7%94. - ייצוא ו-API: חלק מכלי הניוזלטר, ה-webhooks וה-API שומרים ערכים מקודדים; באקסל מופיעים אז קודים במקום שמות.
- שמות קבצים: קובץ שהורד נקרא
%D7%97%D7%A9%D7%91%D7%95%D7%A0%D7%99%D7%AA%20%D7%A9%D7%A8%D7%94.pdfכשהשרת לא מפענח את השם.
קודים ותווים שבורים בבת אחת
לפעמים הטקסט שבור פעמיים: %D7%B3%C2%A9 הוא ׳© מקודד URL, כלומר ש שנקראה קודם בטעות ואחר כך קודדה. Mojibuster מפענח קודם את הקודים ואז מתקן את התווים השבורים, ובסוף מופיעה שוב ש. עוד על התופעה: מה זה mojibake.
האפשרות לפענח גם קודים כבר מסומנת בדף הזה. היא ממירה גם קודי HTML (ש), קודי דוא"ל (=D7=A9) ורצפי escape מקוד תוכנה (\u05e9). לקבצים בקידוד ישן: המרת Windows-1255 ל-UTF-8.
פענוח בעצמכם באקסל, JavaScript, Python ו-PHP
- אקסל: יש בו רק פונקציית קידוד (
ENCODEURLבגרסה האנגלית), ואין פונקציית פענוח. הכי פשוט: מעתיקים את העמודה, מדביקים כאן ומעתיקים את התוצאה חזרה. ראו גם ג'יבריש באקסל. - JavaScript:
decodeURIComponent("%D7%A9%D7%9C%D7%95%D7%9D")מחזירשלום. - Python:
urllib.parse.unquote("%D7%A9%D7%9C%D7%95%D7%9D"), אוunquote_plusלנתוני טפסים שבהם+הוא רווח. - PHP:
rawurldecode(), אוurldecode()לנתוני טפסים.
שאלות נפוצות
מה זה %D7%A9?
זו האות ש בקידוד URL: שני בייטים של UTF-8, D7 ו-A9, ולפני כל אחד מהם %. באותו אופן %D7%90 היא א ו-%D7%AA היא ת.
מה זה %20?
רווח. בנתוני טפסים משתמשים לעיתים קרובות ב-+ במקומו. Mojibuster משאיר את + כמו שהוא, כי בטקסט רגיל זה יכול להיות סימן פלוס אמיתי.
האם הקישורים שלי מועלים לשרת?
לא. ההמרה מתבצעת כולה בדפדפן שלכם. קישורים עם טוקן, כתובות דוא"ל או פרטים אישיים אחרים לא עוזבים את המכשיר.
למה 100% לא משתנה?
Mojibuster ממיר רק רצפים שנותנים תו מיוחד אמיתי. 100%, 50 % או %20 בודד בטקסט רגיל נשארים כמו שהם.