Τι είναι η κανονικοποίηση 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 ως πηγή και προορισμό.
  • Διδιάστατη μετατροπή: Εναλλάσσεστε ελεύθερα μεταξύ οποιουδήποτε συνδυασμού μορφών.
  • Έξοδος σε πραγματικό χρόνο: Το κείμενο κανονικοποιείται αμέσως καθώς πληκτρολογείτε ή επικολλάτε.
  • Χειρίζεται οποιοδήποτε σενάριο Unicode: Λειτουργεί με λατινικά, CJK, αραβικά, κυριλλικά και οποιοδήποτε άλλο κείμενο κωδικοποιημένο σε Unicode.

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

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

Περιπτώσεις χρήσης

  • Διορθώσεις σύγκρισης συμβολοσειρών: Κανονικοποιήστε το κείμενο πριν το συγκρίνετε ή το ευρετηριάσετε για να διασφαλίσετε ότι οι οπτικά πανομοιότυπες συμβολοσειρές ταιριάζουν σωστά.
  • Συνέπεια αναζήτησης και βάσης δεδομένων: Τυποποιήστε την είσοδο χρήστη σε μια μόνο μορφή (συνήθως NFC) πριν την αποθηκεύσετε σε μια βάση δεδομένων για να αποτρέψετε διπλές καταχωρήσεις που διαφέρουν μόνο στην κωδικοποίηση.
  • Συμπτύχωση συμβατότητας: Χρησιμοποιήστε NFKC για να συμπτύξετε συνδέσμους, εκθέτες και χαρακτήρες πλήρους πλάτους στα τυπικά τους ισοδύναμα για ευρετηρίαση αναζήτησης ή επεξεργασία φυσικής γλώσσας.