Η απόδραση είναι εύκολο να γίνει λάθος επειδή πολλές διαφορετικές δουλειές μοιάζουν από απόσταση. Έχετε κείμενο, το κείμενο περιέχει ειδικούς χαρακτήρες και ένα άλλο σύστημα πρέπει να το λάβει χωρίς να το παρεξηγήσει. Το λάθος είναι να υποθέσουμε ότι ένα είδος απόδρασης λειτουργεί παντού.
Η κωδικοποίηση URL, η διαφυγή HTML και η διαφυγή JSON επιλύουν διαφορετικά προβλήματα. Ένα κενό σε μια συμβολοσειρά ερωτήματος δεν είναι το ίδιο πρόβλημα με έναν χαρακτήρα < σε απόδοση HTML ή ένα εισαγωγικό μέσα σε μια συμβολοσειρά JSON. Το εργαλείο Case / Slug / Escape βοηθά κρατώντας αυτές τις εξόδους κοντά μεταξύ τους, αλλά το χρήσιμο μέρος είναι να γνωρίζετε ποια έξοδο ανήκει στον προορισμό που ετοιμάζετε.
Η κωδικοποίηση URL αφορά διευθύνσεις URL και τιμές ερωτήματος
Χρησιμοποιήστε την κωδικοποίηση URL όταν το κείμενο μεταβαίνει σε ένα στοιχείο URL, ειδικά μια παράμετρος ερωτήματος ή μια τιμή που μπορεί να περιέχει κενά, σημεία στίξης ή χαρακτήρες που δεν είναι ασφαλείς για διαδρομή.
Ας υποθέσουμε ότι ένας σύνδεσμος υποστήριξης πρέπει να περιλαμβάνει έναν όρο αναζήτησης όπως pricing & billing. Η επικόλληση αυτής της φράσης απευθείας σε μια διεύθυνση URL μπορεί να αλλάξει τον τρόπο ερμηνείας της διεύθυνσης URL επειδή το & έχει ήδη νόημα μέσα σε μια συμβολοσειρά ερωτήματος. Η κωδικοποίηση URL μετατρέπει το κείμενο σε μια φόρμα που μπορεί να ταξιδεύει μέσα στη διεύθυνση URL χωρίς να συγχέεται για τη σύνταξη της διεύθυνσης URL.
Αυτό διαφέρει από τη δημιουργία ενός slug. Ένα slug συνήθως μετατρέπει έναν τίτλο σε ένα ευανάγνωστο τμήμα διαδρομής, όπως το pricing-and-billing. Η κωδικοποίηση URL διατηρεί την αρχική τιμή πιο άμεσα για τη μεταφορά.
Η διαφυγή HTML είναι για κείμενο που θα αποδοθεί σε HTML
Χρησιμοποιήστε τη διαφυγή HTML όταν το κείμενο πρέπει να εμφανίζεται ως κείμενο μέσα σε ένα περιβάλλον HTML και όχι να γίνει σήμανση.
Εάν ένα παράδειγμα κώδικα περιλαμβάνει το <button> και θέλετε οι αναγνώστες να βλέπουν αυτούς τους χαρακτήρες, το πρόγραμμα περιήγησης χρειάζεται διαφυγή των χαρακτήρων. Διαφορετικά μπορεί να τα ερμηνεύσει ως πραγματικό στοιχείο. Η διαφυγή HTML αφορά την αποτροπή της ανάγνωσης του κειμένου ως σύνταξης HTML σε μέρη όπου το περιεχόμενο θα πρέπει να παραμένει ορατό κείμενο.
Αυτό έχει σημασία για την τεκμηρίωση, τα πεδία CMS, τα αρχεία καταγραφής αλλαγών και το αντίγραφο προϊόντος. Είναι ιδιαίτερα σημαντικό όταν το κείμενο προέλευσης περιλαμβάνει παραδείγματα σήμανσης, αποσπασμάτων ή τιμών που δημιουργούνται από τον χρήστη που δεν πρέπει να αποτελούν μέρος της δομής της σελίδας.
Η διαφυγή JSON είναι για τιμές συμβολοσειράς μέσα στο JSON
Χρησιμοποιήστε το JSON escapeing όταν το κείμενο πρέπει να τοποθετηθεί με ασφάλεια μέσα σε μια συμβολοσειρά JSON.
Ένα εισαγωγικό είναι αβλαβές στην κανονική πεζογραφία, αλλά μέσα σε μια συμβολοσειρά JSON μπορεί να κλείσει νωρίς τη συμβολοσειρά. Μια νέα γραμμή μπορεί επίσης να χρειάζεται αναπαράσταση που διατηρεί το JSON έγκυρο. Η διαφυγή JSON έχει να κάνει με τη διατήρηση της τιμής διατηρώντας παράλληλα το περιβάλλον JSON αναλύσιμο.
Αυτό εμφανίζεται συχνά όταν οι ομάδες μοιράζονται παραδείγματα API, αποσπάσματα διαμόρφωσης, ωφέλιμα φορτία αναλυτικών στοιχείων ή δείγματα δεδομένων. Εάν το επόμενο βήμα είναι η ευρύτερη εκκαθάριση δομημένων δεδομένων, συνδυάστε αυτό το άρθρο με το How to Format JSON Before Sharing an API Example και το JSON / YAML / TOML Converter.
Επιλέξτε τη διαφυγή με βάση τον προορισμό
Ο απλούστερος κανόνας είναι πρώτα ο προορισμός.
| Προορισμός | Χρήση | Γιατί |
|---|---|---|
| Τιμή ερωτήματος διεύθυνσης URL ή στοιχείο URL | Κωδικοποίηση URL | Αποτρέπει την ερμηνεία του κειμένου ως σύνταξη URL |
| Ορατό κείμενο μέσα σε HTML | HTML διαφεύγει | Αποτρέπει τους ειδικούς χαρακτήρες από τη σήμανση |
| Τιμή συμβολοσειράς μέσα στο JSON | Το JSON διαφεύγει | Διατηρεί τα εισαγωγικά, τις κάθετες και τις αλλαγές γραμμής αναλύσιμα |
| Δημόσιο άρθρο ή τίτλος διαδρομής | Slug γενιά | Δημιουργεί ευανάγνωστο κείμενο διαδρομής αντί να διατηρεί κάθε χαρακτήρα |
Η μετατροπή βοηθάει επειδή μπορείτε να επικολλήσετε μία φορά και να συγκρίνετε τις εξόδους χωρίς να ανοίξετε ξεχωριστό κωδικοποιητή για κάθε περίπτωση. Αυτό διατηρεί τη δουλειά ανάλογη. Δεν κατασκευάζετε αγωγό. ετοιμάζετε μια τιμή κειμένου για το μέρος που πρέπει να πάει.
Ανοίξτε το εργαλείο Case / Slug / Escape όταν πρέπει να αποφασίσετε εάν η επόμενη έξοδος θα είναι μια slug, μια τιμή κωδικοποιημένη με URL, ένα κείμενο που είναι ασφαλές για HTML ή μια συμβολοσειρά που είναι ασφαλής για JSON.



