tigtools

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

Κάντε το κείμενο ασφαλές για τοποθέτηση μέσα σε HTML ή μετατρέψτε οντότητες όπως & και é ξανά σε κανονικούς χαρακτήρες.

Εκτελείται στον περιηγητή σας Χωρίς εγγραφή

Κατεύθυνση

Οι & < > " και ' διαφεύγουν πάντα. Άλλοι χαρακτήρες μετατρέπονται μόνο αν επιλέξετε μια επιλογή για χαρακτήρες εκτός ASCII.

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

  1. Επιλέξτε «Κωδικοποίηση» για να κάνετε το κείμενο ασφαλές για HTML ή «Αποκωδικοποίηση» για να μετατρέψετε τις οντότητες ξανά σε χαρακτήρες.
  2. Κατά την κωδικοποίηση, επιλέξτε αν τα τονισμένα γράμματα και τα σύμβολα θα παραμείνουν ως έχουν ή θα μετατραπούν σε οντότητες.
  3. Πληκτρολογήστε ή επικολλήστε το κείμενό σας· το αποτέλεσμα ενημερώνεται άμεσα.
  4. Αντιγράψτε το αποτέλεσμα ή χρησιμοποιήστε «Χρήση εξόδου ως εισόδου» για να ελέγξετε ότι αποκωδικοποιείται ξανά στο αρχικό κείμενο.

Πώς λειτουργεί

Στην HTML, ορισμένοι χαρακτήρες έχουν ειδική σημασία: το < ξεκινά μια ετικέτα, το & ξεκινά μια οντότητα και το " ή το ' τερματίζει την τιμή ενός χαρακτηριστικού. Για να εμφανιστούν ως κείμενο, πρέπει να γραφτούν ως αναφορές χαρακτήρων: &lt; για <, &gt; για >, &amp; για &, &quot; για " και &#39; για '. Για την απόστροφο χρησιμοποιείται η αριθμητική μορφή επειδή η &apos; δεν ορίζεται στην HTML 4.

Όλοι οι άλλοι χαρακτήρες, συμπεριλαμβανομένων των τονισμένων γραμμάτων, του κινεζικού κειμένου και των emoji, μπορούν να γραφτούν απευθείας όταν η σελίδα αποθηκεύεται και διατίθεται ως UTF-8, που είναι η προεπιλογή για σύγχρονους ιστότοπους. Η μετατροπή τους σε οντότητες χρειάζεται μόνο για συστήματα που δεν είναι ασφαλή με UTF-8, όπως ορισμένα παλιά πρότυπα email ή βάσεις δεδομένων. Μπορείτε έπειτα να επιλέξετε ονοματισμένες οντότητες όπως &eacute; όπου υπάρχει κοινό όνομα (με αριθμητική εναλλακτική για όλα τα υπόλοιπα) ή αριθμητικές αναφορές όπως &#xE9; για κάθε χαρακτήρα.

Η αποκωδικοποίηση δεν χρησιμοποιεί τον αναλυτή HTML του προγράμματος περιήγησης. Χρησιμοποιεί έναν ενσωματωμένο πίνακα με όλες τις 252 ονοματισμένες οντότητες από την HTML 4.01, την &apos; και περίπου 30 κοινά ονόματα HTML5, καθώς και δεκαδικές και δεκαεξαδικές αναφορές. Οι αριθμητικές αναφορές ακολουθούν τους κανόνες της HTML5: τα &#0;, οι τιμές υποκατάστασης και οι τιμές πάνω από το U+10FFFF γίνονται ο χαρακτήρας αντικατάστασης και οι τιμές 128–159 διαβάζονται ως Windows-1252, οπότε το &#150; γίνεται παύλα en. Ορισμένα παλαιά ονόματα όπως &amp και &copy γίνονται επίσης δεκτά χωρίς το τελικό ερωτηματικό, όπως κάνουν τα προγράμματα περιήγησης. Η HTML5 ορίζει πάνω από 2.000 ονόματα· τα σπάνια εκτός πίνακα παραμένουν αμετάβλητα και καταγράφονται.

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

Παραδείγματα

Εμφάνιση κώδικα σε ιστοσελίδα

Για να εμφανίσετε το <div class="box"> ως κείμενο σε μια ανάρτηση ιστολογίου, κωδικοποιήστε το ως &lt;div class=&quot;box&quot;&gt;. Το πρόγραμμα περιήγησης εμφανίζει την αρχική ετικέτα αντί να δημιουργήσει ένα στοιχείο.

Προετοιμασία κειμένου για παλιό πρότυπο email

Με την επιλογή «Ονοματισμένες οντότητες όπου είναι διαθέσιμες», το «Café – 5 €» γίνεται Caf&eacute; &ndash; 5 &euro;, το οποίο εμφανίζεται σωστά ακόμη και αν το email σταλεί με μη UTF-8 σύνολο χαρακτήρων.

Καθαρισμός κειμένου από απόξεση ή εξαγωγή

Μια εξαγωγή CMS περιέχει Fish &amp; Chips &#8211; &pound;9. Η αποκωδικοποίηση δίνει Fish & Chips – £9, έτοιμο για επικόλληση σε υπολογιστικό φύλλο.

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

Ποιοι χαρακτήρες πρέπει να διαφεύγουν στην HTML;

Στο περιεχόμενο στοιχείων, τα & και < πρέπει να διαφεύγουν (συνιστάται και το >). Μέσα σε τιμές χαρακτηριστικών, διαφύγετε επίσης το εισαγωγικό που περικλείει την τιμή. Η διαφυγή και των πέντε (& < > " ') παντού είναι ο απλός, ασφαλής κανόνας που ακολουθεί αυτό το εργαλείο.

Ποια είναι η διαφορά μεταξύ επώνυμων και αριθμητικών οντοτήτων;

Οι επώνυμες οντότητες όπως &copy; διαβάζονται ευκολότερα, αλλά υπάρχουν μόνο για ένα περιορισμένο σύνολο χαρακτήρων. Οι αριθμητικές αναφορές όπως &#169; (δεκαδικό) ή &#xA9; (δεκαεξαδικό) λειτουργούν για κάθε χαρακτήρα Unicode, συμπεριλαμβανομένων των emoji.

Γιατί το &nbsp; αποκωδικοποιείται σε κάτι που μοιάζει με διάστημα;

Το &nbsp; είναι ένα μη διακοπτόμενο διάστημα (U+00A0). Μοιάζει με κανονικό διάστημα, αλλά αποτρέπει την αλλαγή γραμμής και δεν συμπτύσσεται από την HTML. Είναι διαφορετικός χαρακτήρας από το συνηθισμένο διάστημα, κάτι που έχει σημασία όταν συγκρίνετε ή αναζητάτε κείμενο.

Χρειάζεται να κωδικοποιήσω τονισμένα γράμματα όπως το é;

Όχι, αν η σελίδα σας χρησιμοποιεί UTF-8 (<meta charset="utf-8">), όπως κάνουν σχεδόν όλες οι σύγχρονες σελίδες. Διατηρήστε την προεπιλεγμένη ρύθμιση και μόνο οι πέντε ειδικοί χαρακτήρες διαφεύγουν.

Είναι αρκετή η κωδικοποίηση για την αποτροπή XSS;

Είναι αρκετό για μη αξιόπιστο κείμενο που εισάγεται σε περιεχόμενο στοιχείων HTML ή σε τιμές χαρακτηριστικών με εισαγωγικά. Δεν είναι αρκετό για κώδικα JavaScript, CSS, χαρακτηριστικά χωρίς εισαγωγικά ή URL όπως href="javascript:…", τα οποία χρειάζονται χειρισμό ανάλογα με τα συμφραζόμενα.

Απόρρητο

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