Τι είναι η κανονικοποίηση Unicode;

Το Unicode ορίζει πολλαπλούς τρόπους αναπαράστασης του ίδιου ορατού χαρακτήρα. Για παράδειγμα, ο χαρακτήρας "é" μπορεί να αποθηκευτεί ως ένα μόνο προσυνθετικό σημείο κώδικα (U+00E9) ή ως το γράμμα "e" ακολουθούμενο από ένα συνδυάζον οξύ τόνο (U+0065 U+0301). Και τα δύο εμφανίζονται πανομοιότυπα αλλά διαφέρουν byte προς byte, γεγονός που προκαλεί προβλήματα στη σύγκριση συμβολοσειρών, την αναζήτηση και την επεξεργασία κειμένου.

Η κανονικοποίηση Unicode είναι η διαδικασία μετατροπής κειμένου σε μια κανονική αναπαράσταση, ώστε ισοδύναμες συμβολοσειρές να γίνουν πανομοιότυπες. Το Unicode Standard ορίζει τέσσερις μορφές κανονικοποίησης:

  • NFC (Κανονική Αποσύνθεση, ακολουθούμενη από Κανονική Σύνθεση): Προσυνθετική μορφή· πιο συμπαγής, ευρέως χρησιμοποιούμενη στο διαδίκτυο και στα περισσότερα λειτουργικά συστήματα.
  • NFD (Κανονική Αποσύνθεση): Πλήρως αποσυνθετική μορφή· κάθε χαρακτήρας διαχωρίζεται σε βασικό γράμμα συν συνδυάζοντα σημάδια.
  • NFKC (Αποσύνθεση Συμβατότητας, ακολουθούμενη από Κανονική Σύνθεση): Όπως το NFC αλλά επίσης συμπτύσσει χαρακτήρες συμβατότητας (π.χ., σύνδεσμοι, εκθέτες, παραλλαγές πλήρους πλάτους) στα κανονικά τους ισοδύναμα.
  • NFKD (Αποσύνθεση Συμβατότητας): Όπως το NFD αλλά εφαρμόζει επίσης αποσύνθεση συμβατότητας.

Περιγραφή εργαλείου

Αυτό το εργαλείο κανονικοποιεί κείμενο Unicode από μια μορφή κανονικοποίησης σε άλλη. Επιλέξτε τις μορφές προέλευσης και προορισμού, επικολλήστε το κείμενό σας και το μετατρεπόμενο αποτέλεσμα εμφανίζεται αμέσως.

Χαρακτηριστικά

  • Και οι τέσσερις μορφές κανονικοποίησης: Υποστηρίζει NFC, NFD, NFKC και NFKD ως πηγή και προορισμό.
  • Διδιάστατη μετατροπή: Εναλλάσσεστε ελεύθερα μεταξύ οποιουδήποτε συνδυασμού μορφών.
  • Έξοδος σε πραγματικό χρόνο: Το κείμενο κανονικοποιείται αμέσως καθώς πληκτρολογείτε ή επικολλάτε.

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

Το εργαλείο εφαρμόζει τη μέθοδο JavaScript String.prototype.normalize() με την επιλεγμένη μορφή προορισμού. Αυτή είναι μια πλήρως συμμορφούμενη υλοποίηση της κανονικοποίησης Unicode όπως ορίζεται στο Unicode Standard Annex #15.