Δωρεάν μετατροπέας

Κωδικοποιητής URL / Αποκωδικοποιητής

Κωδικοποιήστε και αποκωδικοποιήστε διευθύνσεις URL και στοιχεία URI αμέσως στο πρόγραμμα περιήγησής σας. Δωρεάν, ιδιωτικό και δεν απαιτείται μεταφόρτωση.

Ή

Σχετικά με αυτό το εργαλείο

Η κωδικοποίηση URL (επίσημη κωδικοποίηση ποσοστού, ορίζεται στο RFC 3986) μεταφράζει χαρακτήρες που έχουν ειδική σημασία στις διευθύνσεις URL — κενά, κάθετες, συμπλεκτικά σύμβολα, σημάδια κατακερματισμού — σε ασφαλή μορφή χρησιμοποιώντας σημεία ποσοστού που ακολουθούνται από δεκαεξαδικά ψηφία. Ο χαρακτήρας διαστήματος γίνεται %20 (ή + σε περιβάλλοντα με κωδικοποίηση φόρμας), το συμπλεκτικό σύμβολο γίνεται %26 και ούτω καθεξής. Χωρίς αυτήν την κωδικοποίηση, οι ειδικοί χαρακτήρες θα ερμηνεύονταν ως σύνταξη URL και όχι ως κυριολεκτικά δεδομένα, σπάζοντας τη διεύθυνση URL ή προκαλώντας ακούσια συμπεριφορά.

Υπάρχουν δύο σχετικές αλλά διακριτές κωδικοποιήσεις. Η τυπική κωδικοποίηση στοιχείου URL χρησιμοποιεί %-διαφυγές για οτιδήποτε είναι εκτός του μη δεσμευμένου συνόλου χαρακτήρων: A-Z, a-z, 0-9, παύλα, κάτω παύλα, τελεία, tilde. Η παραλλαγή με κωδικοποίηση φόρμας (application/x-www-form-urlencoded) αντιμετωπίζει επιπλέον τα κενά ως σύμβολα συν και χρησιμοποιεί διαφορετικούς κανόνες για ορισμένους άλλους χαρακτήρες. Το encodeURIcomponent της JavaScript χρησιμοποιεί την αυστηρή κωδικοποίηση στοιχείων. Το encodeURI χρησιμοποιεί μια πιο επιτρεπτή φόρμα που διατηρεί τους χαρακτήρες δομής URL.

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

Γιατί κωδικοποίηση ή αποκωδικοποίηση διευθύνσεων URL

Οποιαδήποτε στιγμή περιλαμβάνονται δεδομένα σε μια διεύθυνση URL — παράμετροι συμβολοσειράς ερωτήματος, τμήματα διαδρομής που περιέχουν στοιχεία εισόδου χρήστη, στόχοι ανακατεύθυνσης — απαιτείται σωστή κωδικοποίηση. Η αποτυχία κωδικοποίησης παράγει διευθύνσεις URL που σπάνε όταν εμφανίζονται ειδικοί χαρακτήρες, διαρρέουν τα όρια παραμέτρων σε συμβολοσειρές ερωτημάτων (μετατρέποντας το &x=1 σε ξεχωριστή παράμετρο) ή αποκλείονται από διακομιστές ιστού ως αιτήματα με κακή μορφή.

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

Πώς να το χρησιμοποιήσετε

Επικολλήστε μια συμβολοσειρά, επιλέξτε κατεύθυνση.

  1. Επιλέξτε κωδικοποίηση ή αποκωδικοποίηση: Το Encode αναδιπλώνει μη ασφαλείς χαρακτήρες σε μορφή %HH. Η αποκωδικοποίηση αντιστρέφει το %HH διαφεύγει πίσω σε κυριολεκτικούς χαρακτήρες.
  2. Προσθήκη κειμένου εισαγωγής: Επικολλήστε τη συμβολοσειρά για κωδικοποίηση ή αποκωδικοποίηση. Για την κωδικοποίηση, αυτή είναι συνήθως μια κυριολεκτική τιμή με κενά, ειδικούς χαρακτήρες ή περιεχόμενο που δεν είναι ASCII. Για αποκωδικοποίηση, αυτό είναι ένα URL ή στοιχείο URL που περιέχει %HH διαφυγές.
  3. Μετατροπή: Το εργαλείο εφαρμόζει encodeURIcomponent ή decodeURIcomponent. Η κωδικοποιημένη έξοδος είναι ασφαλής για ενσωμάτωση σε μια διεύθυνση URL. Η αποκωδικοποιημένη έξοδος είναι η αρχική κυριολεκτική τιμή.
  4. Αντιγραφή ή λήψη: Χρησιμοποιήστε το αποτέλεσμα όπου το χρειάζεστε. Οι κωδικοποιημένες τιμές ταιριάζουν σε διευθύνσεις URL. Οι αποκωδικοποιημένες τιμές αποκαλύπτουν τα αρχικά δεδομένα.

Κοινές περιπτώσεις χρήσης

Τεχνικές λεπτομέρειες

encodeURIcomponent κωδικοποιεί κάθε χαρακτήρα εκτός του μη δεσμευμένου συνόλου [A-Za-z0-9-_.~]. Τα διαστήματα γίνονται %20, τα σύμβολα συν γίνονται %2B, τα σημάδια ίσου γίνονται %3D και ούτω καθεξής. Οι χαρακτήρες εκτός ASCII κωδικοποιούνται πρώτα σε UTF-8 και, στη συνέχεια, κάθε byte έχει %-διαφυγή.

Το encodeURI είναι πιο επιτρεπτό και προορίζεται για πλήρεις διευθύνσεις URL παρά για στοιχεία. Δεν διαφεύγει /, ?, &, =, # και μερικά άλλα επειδή αυτοί οι χαρακτήρες έχουν νόημα σύνταξης URL. Για την ενσωμάτωση δεδομένων χρήστη σε μια διεύθυνση URL, το encodeURIcomponent είναι σχεδόν πάντα η σωστή επιλογή.

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

Βέλτιστες Πρακτικές

Συχνές ερωτήσεις

Ποιοι χαρακτήρες χρειάζονται κωδικοποίηση URL;
Οι δεσμευμένοι χαρακτήρες (&, =, ?, #, /, :, @) και οι μη ασφαλείς χαρακτήρες (κενά, <, >, {, }, |, ^, ~, [, ], `) πρέπει να κωδικοποιηθούν. Οι αλφαριθμητικοί χαρακτήρες και -_.~ είναι ασφαλείς και δεν χρειάζονται κωδικοποίηση.
Ποια είναι η διαφορά μεταξύ του encodeURI και του encodeURIcomponent;
Το encodeURI κωδικοποιεί μια πλήρη διεύθυνση URL αλλά διατηρεί δεσμευμένους χαρακτήρες (://?#). Το encodeURIcomponent κωδικοποιεί τα πάντα εκτός από -_.!~*'() — χρησιμοποιήστε το για τιμές παραμέτρων ερωτήματος. Αυτό το εργαλείο προσφέρει και τις δύο λειτουργίες.
Πώς κωδικοποιούνται τα κενά στα URL;
Τα διαστήματα μπορούν να κωδικοποιηθούν ως %20 (τυπική κωδικοποίηση ποσοστού) ή + (κωδικοποίηση φόρμας). Το %20 είναι σωστό για τις διαδρομές URL, ενώ το + χρησιμοποιείται σε συμβολοσειρές ερωτημάτων από φόρμες HTML. Αυτό το εργαλείο χρησιμοποιεί το %20 από προεπιλογή.
Μπορώ να κωδικοποιήσω χαρακτήρες Unicode;
Ναι. Οι χαρακτήρες Unicode κωδικοποιούνται πρώτα σε UTF-8 byte και, στη συνέχεια, κάθε byte κωδικοποιείται σε ποσοστά. Για παράδειγμα, το '日' γίνεται %E6%97%A5 (τρία UTF-8 byte, κάθε ποσοστό κωδικοποιημένο).
Πρέπει να χρησιμοποιήσω το encodeURI ή το encodeURIcomponent;
Σχεδόν πάντα encodeURIcomponent. Χρησιμοποιήστε το encodeURI μόνο εάν έχετε μια πλήρη διεύθυνση URL και θέλετε να διατηρήσετε τη δομή της — συνήθως σπάνια αφού δημιουργείτε διευθύνσεις URL από στοιχεία ούτως ή άλλως.
Τα δεδομένα μου μεταφορτώνονται σε διακομιστή;
Όχι. Η κωδικοποίηση και η αποκωδικοποίηση URL γίνονται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας.
Χειρίζεται Unicode emoji;
Ναι. Τα emoji είναι ακολουθίες UTF-8 πολλών byte. ο κωδικοποιητής παράγει μια αλυσίδα από byte με διαφυγή %-τα οποία οι αποκωδικοποιητές συναρμολογούν σωστά ξανά στο αρχικό emoji.
Τι γίνεται αν η είσοδος μου έχει συμβολοσειρές με εμφάνιση %HH που δεν είναι πραγματικά κωδικοποιημένες;
Η κωδικοποίηση μετατρέπει κάθε % σε %25 και, στη συνέχεια, εφαρμόζεται ξανά διαφυγή για τα υπόλοιπα. Η αποκωδικοποίηση αυστηρής εισαγωγής προκαλεί σφάλματα σε κακομορφικές διαφυγές. Οι συμβολοσειρές με διφορούμενη εμφάνιση ενδέχεται να αποκωδικοποιούνται εσφαλμένα.