URL Encoder/Decoder

Ο κωδικοποιητής και αποκωδικοποιητής URL μετατρέπει URL και κείμενο σε μορφή percent-encoded και αντίστροφα σε πραγματικό χρόνο. Κωδικοποιήστε ειδικούς χαρακτήρες, παραμέτρους ερωτήματος, τμήματα διαδρομής και κείμενο Unicode για ασφαλή χρήση σε URL. Αποκωδικοποιήστε συμβολοσειρές percent-encoded πίσω σε αναγνώσιμο κείμενο. Υποστηρίζει τυπική κωδικοποίηση RFC 3986, κωδικοποίηση στοιχείων και πλήρη κωδικοποίηση URL με υποστήριξη UTF-8. Όλη η επεξεργασία γίνεται στην πλευρά του πελάτη — τα δεδομένα σας δεν φεύγουν ποτέ από το πρόγραμμα περιήγησής σας.

star 4.9
auto_awesome AI
New

URL Encoder calculator

Method:
0 characters 0 bytes
0 characters

lightbulb Tips

  • Use encodeURIComponent for query values
  • Spaces → %20 (standard) or + (form data)
  • A-Z a-z 0-9 - _ . ~ are never encoded
  • Always encode user input before URLs

How to Use the URL Encoder

swap_horiz

Επιλογή Λειτουργίας

Επιλέξτε Κωδικοποίηση για μετατροπή κειμένου σε κωδικοποίηση URL, ή Αποκωδικοποίηση για επαναφορά κειμένου percent-encoded.

tune

Επιλογή Μεθόδου

Επιλέξτε Component (για τιμές ερωτήματος), URI (για πλήρη URL), ή Form Data (+ για κενά).

text_fields

Εισαγωγή Δεδομένων

Πληκτρολογήστε ή επικολλήστε το κείμενό σας (για κωδικοποίηση) ή τη κωδικοποιημένη URL (για αποκωδικοποίηση).

content_copy

Λήψη Αποτελέσματος

Το αποτέλεσμα εμφανίζεται αμέσως. Κάντε κλικ στην Αντιγραφή για να το αντιγράψετε στο πρόχειρο.

The Formula

Η κωδικοποίηση URL (ποσοστιαία κωδικοποίηση) αντικαθιστά μη ασφαλείς ή δεσμευμένους χαρακτήρες με ένα σύμβολο ποσοστού (%) ακολουθούμενο από δύο δεκαεξαδικά ψηφία που αντιπροσωπεύουν την τιμή byte του χαρακτήρα. Για παράδειγμα, ένα κενό γίνεται %20 και το '&' γίνεται %26. Οι χαρακτήρες UTF-8 χρησιμοποιούν πολλαπλά κωδικοποιημένα bytes με ποσοστό (π.χ., '€' → %E2%82%AC). Οι μη δεσμευμένοι χαρακτήρες (γράμματα, ψηφία, -, _, ., ~) δεν κωδικοποιούνται ποτέ.

URL Encoding = replace unsafe characters → %HH (hex byte value)

lightbulb Variables Explained

  • %HH Σύμβολο ποσοστού ακολουθούμενο από δύο δεκαεξαδικά ψηφία που αντιπροσωπευούν την τιμή byte
  • Unreserved chars A-Z a-z 0-9 - _ . ~ (δεν κωδικοποιούνται ποτέ)
  • Reserved chars : / ? # [ ] @ ! $ & ' ( ) * + , ; = (κωδικοποιούνται στα τμήματα)
  • UTF-8 Χαρακτήρες πολλαπλών byte κωδικοποιημένοι ως πολλαπλές ακολουθίες %HH

tips_and_updates Pro Tips

1

Χρησιμοποιήστε το encodeURIComponent για τιμές παραμέτρων ερωτήματος — κωδικοποιεί τα πάντα εκτός από A-Z a-z 0-9 - _ . ~

2

Χρησιμοποιήστε το encodeURI για πλήρη URL — διατηρεί τα :, /, ?, #, &, = και άλλους χαρακτήρες δομής URL

3

Τα κενά μπορούν να κωδικοποιηθούν ως %20 (τυπικό) ή + (δεδομένα φόρμας / application/x-www-form-urlencoded)

4

Κωδικοποιείτε πάντα την είσοδο του χρήστη πριν την εισαγωγή σε URL για την αποτροπή επιθέσεων injection

5

Χαρακτήρες UTF-8 όπως τα emojis κωδικοποιούνται ως πολλαπλά byte %HH (π.χ., 😀 → %F0%9F%98%80)

6

Η διπλή κωδικοποίηση συμβαίνει όταν κωδικοποιείτε μια ήδη κωδικοποιημένη συμβολοσειρά — αποκωδικοποιήστε πρώτα αν δεν είστε σίγουροι

7

Το RFC 3986 ορίζει το πρότυπο: οι μη δεσμευμένοι χαρακτήρες (A-Z a-z 0-9 - _ . ~) δεν κωδικοποιούνται ποτέ

Το δωρεάν εργαλείο μας για κωδικοποίηση και αποκωδικοποίηση URL μετατρέπει το κείμενο σε μορφή ποσοστιαίας κωδικοποίησης και αντίστροφα στιγμιαία. Κωδικοποιήστε παραμέτρους ερωτημάτων, τμήματα διαδρομής και ειδικούς χαρακτήρες για ασφαλή χρήση URL. Αποκωδικοποιήστε ποσοστιαία κωδικοποιημένες συμβολοσειρές πίσω σε αναγνώσιμο κείμενο. Υποστηρίζει UTF-8 και όλους τους χαρακτήρες Unicode.

Κωδικοποιητής URL - Κείμενο σε Ποσοστιαία Κωδικοποίηση

Μετατρέψτε οποιοδήποτε κείμενο σε ασφαλή ποσοστιαία κωδικοποίηση URL στιγμιαία. Ο κωδικοποιητής μας χειρίζεται κενά, ειδικούς χαρακτήρες, Unicode και emoji.

Επιλέξτε ανάμεσα σε:

  • κωδικοποίηση τμήματος (για τιμές ερωτημάτων)
  • κωδικοποίηση URI (διατήρηση δομής URL)
  • κωδικοποίηση δεδομένων φόρμας (+ για κενά)

Αποκωδικοποιητής URL - Ποσοστιαία Κωδικοποίηση σε Κείμενο

Αποκωδικοποιήστε οποιαδήποτε ποσοστιαία κωδικοποιημένη URL πίσω σε αναγνώσιμο κείμενο. Επικολλήστε κωδικοποιημένες URL, συμβολοσειρές ερωτημάτων ή μεμονωμένες παραμέτρους και δείτε το αρχικό κείμενο στιγμιαία.

Υποστηρίζει:

  • ακολουθίες %HH
  • συν ̇ως-κενό
  • χαρακτήρες UTF-8 πολλαπλών byte

Πώς Λειτουργεί η Κωδικοποίηση URL (Ποσοστιαία Κωδικοποίηση);

Η κωδικοποίηση URL λειτουργεί αντικαθιστώντας οποιονδήποτε χαρακτήρα που δεν είναι ασφαλής ή είναι δεσμευμένος σε μια URL με ένα σύμβολο ποσοστού ακολουθούμενο από δύο δεκαεξαδικά ψηφία που αντιπροσωπεύουν την τιμή byte αυτού του χαρακτήρα, ένα σχήμα που ορίζεται τυπικά στο RFC 3986 από το IETF.

Ένα κενό γίνεται %20, ένα σύμβολο ampersand γίνεται %26 και μια κάθετος γίνεται %2F. Οι μη ASCII χαρακτήρες μετατρέπονται πρώτα στην ακολουθία byte UTF-8 τους, και στη συνέχεια κάθε byte κωδικοποιείται ποσοστιαία, οπότε το γράμμα 'é' γίνεται %C3%A9.

Σύμφωνα με τα MDN Web Docs, τα προγράμματα περιήγησης το εφαρμόζουν αυτό αυτόματα μέσω συναρτήσεων όπως το encodeURIComponent. Μόνο οι μη δεσμευμένοι χαρακτήρες (A-Z, a-z, 0-9, παύλα, κάτω παύλα, τελεία, tilde) παραμένουν ανέπαφοι.

Ποια είναι η Διαφορά Μεταξύ του encodeURI και του encodeURIComponent;

Το encodeURI κωδικοποιεί μια πλήρη URL διατηρώντας τους δεσμευμένους δομικούς χαρακτήρες, ενώ το encodeURIComponent κωδικοποιεί ένα μεμονωμένο τμήμα και αποδεσμεύει και αυτούς τους δομικούς χαρακτήρες.

Όπως τεκμηριώνεται από τα MDN Web Docs, το encodeURI αφήνει ανέπαφα τα :, /, ?, #, &, και = ώστε μια ολόκληρη διεύθυνση να παραμένει λειτουργική, καθιστώντας το κατάλληλο για πλήρεις URL. Το encodeURIComponent διαφεύγει τα πάντα εκτός από το σύνολο μη δεσμευμένων χαρακτήρων του RFC 3986, οπότε είναι η σωστή επιλογή για τιμές παραμέτρων ερωτήματος, τμήματα διαδρομής ή κείμενο θραυσμάτων που μπορεί να περιέχουν δεσμευμένους χαρακτήρες.

Η χρήση του encodeURI όπου απαιτείται το encodeURIComponent είναι ένα συνήθες σφάλμα: ένα ακωδικοποίητο & μέσα σε μια τιμή θα διαβαστεί λανθασμένα ως διαχωριστικό παραμέτρων, αλλοιώνοντας σιωπηλά το αίτημα.

Ποιοι Χαρακτήρες είναι Δεσμευμένοι έναντι των Μη Δεσμευμένων σε μια URL;

Το RFC 3986 χωρίζει τους χαρακτήρες URL σε σύνολα μη δεσμευμένων και δεσμευμένων, και αυτή η διάκριση καθορίζει τι θα κωδικοποιηθεί ποσοστιαία.

  • Οι μη δεσμευμένοι χαρακτήρες είναι τα γράμματα A-Z και a-z, τα ψηφία 0-9 και τα τέσσερα σημεία παύλα, κάτω παύλα, τελεία και tilde· αυτοί δεν απαιτούν ποτέ κωδικοποίηση.
  • Οι δεσμευμένοι χαρακτήρες περιλαμβάνουν τους γενικούς οριοθέτες : / ? # [ ] @ και τους υπο-οριοθέτες ! $ & ' ( ) * + , ; = που φέρουν συντακτική σημασία.

Σύμφωνα με τις προδιαγραφές του IETF, οι δεσμευμένοι χαρακτήρες μπορεί να εμφανίζονται ακωδικοποίητοι όταν εξυπηρετούν τον ρόλο του οριοθέτη, αλλά πρέπει να κωδικοποιούνται ποσοστιαία όταν χρησιμοποιούνται κυριολεκτικά μέσα σε ένα τμήμα. Οτιδήποτε βρίσκεται εκτός και των δύο συνόλων, συμπεριλαμβανομένων των κενών και του Unicode, θα πρέπει να κωδικοποιείται πάντα.

Γιατί τα URL χρησιμοποιούν %20 για τα κενά;

Τα URL χρησιμοποιούν %20 για τα κενά επειδή ο χαρακτήρας κενού δεν επιτρέπεται να εμφανίζεται κυριολεκτικά σε ένα URI σύμφωνα με το RFC 3986, οπότε κωδικοποιείται ποσοστιαία στην τιμή byte ASCII, hex 20.

Υπάρχει και μια δεύτερη σύμβαση: στα δεδομένα application/x-www-form-urlencoded, τη μορφή που χρησιμοποιείται από υποβολές φόρμες HTML και πολλά query strings, ένα κενό κωδικοποιείται ως συν πλην (+) αντί για %20, όπως ορίζεται από το πρότυπο URL του WHATWG και τις προδιαγραφές φορμών του W3C.

Γι' αυτό οι αποκωδικοποιητές πρέπει να γνωρίζουν το πλαίσιο. Το %20 είναι καθολικά ασφαλές στη διαδρομή, το query και το fragment, ενώ το + σημαίνει κενό μόνο μέσα σε δεδομένα ερωτημάτων κωδικοποιημένα σε φόρμα και είναι ένα κυριολεκτικό συν οπουδήποτε αλλού.

Πώς χειρίζεται η κωδικοποίηση URL τη Unicode και τα Emoji;

Η κωδικοποίηση URL χειρίζεται τη Unicode μετατρέποντας πρώτα κάθε χαρακτήρα στην ακολουθία byte UTF-8 και στη συνέχεια κωδικοποιώντας ποσοστιαία κάθε μεμονωμένο byte. Το Unicode Consortium ορίζει τα σημεία κώδικα και το UTF-8 (που καθορίζεται στο RFC 3629) τα αντιστοιχίζει σε ένα έως τέσσερα byte.

Για παράδειγμα:

  • Ένας χαρακτήρας ASCII ενός byte όπως το 'A' παραμένει 'A'
  • Το 'é' κωδικοποιείται σε %C3%A9
  • Ο χαρακτήρας CJK '日' γίνεται %E6%97%A5
  • Ένα emoji όπως το 😀 κωδικοποιείται σε τέσσερα byte, %F0%9F%98%80

Τα MDN Web Docs σημειώνουν ότι η συνάρτηση encodeURIComponent της JavaScript λειτουργεί με UTF-8 από προεπιλογή. Οι αποκωδικοποιητές αντιστρέφουν αυτή τη διαδικασία συλλέγοντας τα ποσοστιαία κωδικοποιημένα byte και ερμηνεύοντάς τα εκ νέου ως ροή UTF-8 για να ανακτήσουν το αρχικό κείμενο.

Τι είναι η διπλή κωδικοποίηση και πώς μπορείτε να την αποφύγετε;

Διπλή κωδικοποίηση συμβαίνει όταν μια συμβολοσειρά που έχει ήδη κωδικοποιηθεί ποσοστιαία κωδικοποιείται ξανά, μετατρέποντας κάθε % σε %25 ώστε το %20 να γίνει %2520 και η τιμή να μην μπορεί πλέον να διαβαστεί σωστά.

Αυτή είναι μια συχνή πηγή σπασμένων συνδέσμων και, σύμφωνα με το OWASP, ένα ζήτημα ασφάλειας επειδή οι επιτιθέμενοι χρησιμοποιούν τη διπλή κωδικοποίηση για να περάσουν κακόβουλη είσοδο από φίλτρα που αποκωδικοποιούν μόνο μία φορά.

Για να την αποφύγετε, κωδικοποιήστε μια τιμή ακριβώς μία φορά στο σημείο όπου εισέρχεται στο URL και μην επανακωδικοποιείτε ποτέ δεδομένα που προήλθαν από άλλη κωδικοποιημένη πηγή. Εάν δεν είστε σίγουροι αν μια συμβολοσειρά είναι ήδη κωδικοποιημένη, αποκωδικοποιήστε την πρώτα. Αν η έξοδος αλλάξει και φαίνεται ευανάγνωστη, είχε κωδικοποιηθεί και δεν πρέπει να την κωδικοποιήσετε ξανά.

Είναι η κωδικοποίηση URL ασφαλής; Κωδικοποίηση έναντι Κρυπτογράφησης

Η κωδικοποίηση URL δεν είναι ασφαλής και δεν παρέχει καμία εμπιστευτικότητα. Πρόκειται για έναν αντιστρέψιμο μετασχηματισμό για την ασφάλεια της μεταφοράς και όχι για κρυπτογράφηση. Οποιοσδήποτε μπορεί να αποκωδικοποιήσει μια ποσοστιαία κωδικοποιημένη συμβολοσειρά αμέσως, επομένως τα ευαίσθητα δεδομένα που τοποθετούνται σε ένα URL παραμένουν πλήρως αναγνώσιμα και, όπως προειδοποιεί το OWASP, εκτίθενται επίσης στο ιστορικό του προγράμματος περιήγησης, στα αρχεία καταγραφής (logs) του διακομιστή και στις κεφαλίδες Referer.

Η κωδικοποίηση διασφαλίζει απλώς ότι οι ειδικοί χαρακτήρες δεν καταστρέφουν τη σύνταξη του URL. Η κρυπτογράφηση, αντίθετα, χρησιμοποιεί ένα κλειδί και αλγορίθμους όπως το AES (που τυποποιείται από το NIST) για να κάνει τα δεδομένα μη αναγνώσιμα χωρίς αυτό το κλειδί.

Η σωστή χρήση της κωδικοποίησης για λόγους ασφαλείας συνδυάζεται με την κατάλληλη διαφυγή εξόδου για την αποτροπή επιθέσεων έγχυσης. Μην τη θεωρείτε ποτέ ως τρόπο απόκρυψης ή προστασίας πληροφοριών.

Πώς να κωδικοποιείτε σωστά τα Query Strings και τις παραμέτρους URL;

Για να κωδικοποιήσετε σωστά ένα query string, εφαρμόστε το encodeURIComponent σε κάθε κλειδί και τιμή παραμέτρους ξεχωριστά πριν τα ενώσετε με τα σύμβολα & και =, αντί να κωδικοποιήσετε ολόκληρη τη συναρμολογημένη συμβολοσειρά με τη μία.

Αυτό διασφαλίζει ότι οι δεσμευμένοι χαρακτήρες μέσα σε μια τιμή, όπως ένα & ή = στην είσοδο του χρήστη, διαφεύγουν ως %26 και %3D ώστε να μην μπορούν να εκληφθούν εσφαλμένα ως οριοθέτες, ακολουθώντας τους κανόνες application/x-www-form-urlencoded που περιγράφονται από το πρότυπο URL του WHATWG. Για παράδειγμα, η τιμή 'hello world&x=1' πρέπει να γίνει 'hello%20world%26x%3D1'.

Σύμφωνα με τα MDN Web Docs, το API URLSearchParams αυτοματοποιεί αυτή τη διαδικασία με ασφάλεια. Να κωδικοποιείτε πάντα τα δεδομένα που παρέχονται από τον χρήστη πριν τα εισαγάγετε σε ένα query string για να αποτρέψετε την έγχυση παραμέτρων και τα κακόμορφα αιτήματα.

Συνήθη λάθη κατά την κωδικοποίηση και αποκωδικοποίηση URL

Το πιο κοινό λάθος κωδικοποίησης URL είναι η επιλογή της λάθος συνάρτησης: η χρήση του encodeURI σε μια τιμή ερωτήματος αφήνει τα &, =, και ? απαλλαγμένα από διαφυγή, επιτρέποντας στην είσοδο του χρήστη να αλλοιώσει τη δομή του URL.

Άλλα συχνά σφάλματα, πολλά από τα οποία επισημαίνονται από το OWASP και τα MDN Web Docs, περιλαμβάνουν:

  • τη διπλή κωδικοποίηση μιας τιμής ώστε το %20 να γίνει %2520
  • το να ξεχνάτε ότι το + σημαίνει κενό μόνο σε δεδομένα κωδικοποιημένα σε φόρμα
  • την κωδικοποίηση ενός ολόκληρου URL αφού έχει κατασκευαστεί αντί να κωδικοποιείται κάθε στοιχείο εκ των προτέρων

Οι προγραμματιστές επίσης χειρίζονται λανθασμένα το UTF-8 αποκωδικοποιώντας byte ως Latin-1, γεγονός που παράγει mojibake για κείμενα με τόνους και μη λατινικά κείμενα. Τέλος, μην βασίζεστε ποτέ στην κωδικοποίηση για λόγους ασφαλείας. Η αποτυχία διαφυγής εξόδου για το στοχευμένο πλαίσιο αφήνει ανοιχτά τα τρωτά σημεία έγχυσης παρά την έγκυρη ποσοστιαία κωδικοποίηση.

Frequently Asked Questions

sell

Tags