Έλεγχος μήκους συμβολοσειράς
Ελέγξτε το μήκος μιας συμβολοσειράς σε χαρακτήρες, σημεία κώδικα Unicode, μονάδες κώδικα UTF-16 και byte UTF-8. Ορίστε ελάχιστο και μέγιστο μήκος για να δείτε αν ταιριάζει και λάβετε ένα περικομμένο αντίγραφο που δεν κόβει ποτέ ένα emoji στη μέση. Εκτελείται στο πρόγραμμα περιήγησής σας.
Είσοδος
Έξοδος
Readme
Τι είναι το μήκος μιας συμβολοσειράς;
Το μήκος μιας συμβολοσειράς εξαρτάται από το τι μετράτε. Ένας άνθρωπος βλέπει χαρακτήρες, αλλά τα προγράμματα μετρούν code points, μονάδες κώδικα UTF-16 ή bytes, και αυτοί οι αριθμοί συχνά διαφέρουν. Το emoji 👍🏽 μοιάζει με έναν χαρακτήρα, αλλά αποτελείται από 2 code points, 4 μονάδες κώδικα UTF-16 και 8 bytes UTF-8. Τα JavaScript, Java και C# αναφέρουν τις μονάδες κώδικα UTF-16 ως μήκος, οι βάσεις δεδομένων συχνά περιορίζουν τα bytes και τα πεδία φορμών ενδέχεται να μετρούν τις αλλαγές γραμμής ως δύο χαρακτήρες.
Περιγραφή εργαλείου
Αυτό το εργαλείο εμφανίζει ταυτόχρονα το μήκος μιας συμβολοσειράς σε τέσσερις μονάδες και το ελέγχει σε σχέση με ένα ελάχιστο και ένα μέγιστο μήκος. Χρησιμοποιήστε το για να διαπιστώσετε αν ένα όνομα χρήστη, ένας τίτλος ή μια τιμή βάσης δεδομένων χωρά σε ένα όριο ή γιατί δύο προγράμματα αναφέρουν διαφορετικά μήκη για το ίδιο κείμενο. Αν η συμβολοσειρά είναι υπερβολικά μεγάλη, λαμβάνετε ένα περικομμένο αντίγραφο που χωρά στο όριο χωρίς να κόβεται κάποιος χαρακτήρας στη μέση.
Δυνατότητες
- Μετρά χαρακτήρες, Unicode code points, μονάδες κώδικα UTF-16 και bytes UTF-8
- Ελέγχει το μήκος σε σχέση με ένα προαιρετικό ελάχιστο και μέγιστο όριο, στη μονάδα που επιλέγετε
- Εμφανίζει πόσες μονάδες απομένουν, λείπουν ή υπερβαίνουν το όριο
- Περικόπτει μια υπερβολικά μεγάλη συμβολοσειρά χωρίς να διαχωρίζει emoji, σημαίες ή τονισμένα γράμματα
- Μπορεί να αγνοεί τα κενά διαστήματα στην αρχή και στο τέλος
- Μπορεί να μετρά τις αλλαγές γραμμής ως CR LF, όπως τις υποβάλλουν οι φόρμες HTML
Πώς λειτουργεί
Οι χαρακτήρες είναι grapheme clusters, δηλαδή οι μονάδες που ένα άτομο διαβάζει ως έναν χαρακτήρα, οι οποίες εντοπίζονται μέσω της ενσωματωμένης στον browser λειτουργίας τμηματοποίησης κειμένου Unicode. Τα code points είναι οι τιμές Unicode της συμβολοσειράς. Οι μονάδες κώδικα UTF-16 είναι αυτές που επιστρέφει το String.length στο JavaScript: οι χαρακτήρες εκτός του Basic Multilingual Plane, όπως τα περισσότερα emoji, καταλαμβάνουν δύο μονάδες. Τα bytes UTF-8 είναι το μέγεθος της συμβολοσειράς όταν κωδικοποιείται ως UTF-8. Η περικοπή διατηρεί ολόκληρους χαρακτήρες μέχρι το σημείο όπου ο επόμενος θα υπερέβαινε το μέγιστο όριο.
Συμβουλές
- Για όριο
VARCHARστο MySQL ήvarcharστο PostgreSQL, ελέγξτε με βάση τα Unicode code points. Για όριο bytes, όπως ένα κλειδί ευρετηρίου ή ένα πεδίο πρωτοκόλλου δικτύου, ελέγξτε με βάση τα bytes UTF-8. - Η ιδιότητα
maxlengthενός input HTML μετρά μονάδες κώδικα UTF-16, επομένως ένα emoji μπορεί να καταναλώσει έως και δύο. - Οι browser στέλνουν τις αλλαγές γραμμής των textarea ως CR LF, επομένως ένας server που ελέγχει το μήκος μπορεί να μετρά κάθε αλλαγή γραμμής δύο φορές. Ενεργοποιήστε την επιλογή CR LF για να υπάρχει αντιστοίχιση.