CodeKitHub
Εργαλεία κειμένου

Μετρητής Byte — Αριθμός Χαρακτήρων έναντι Μεγέθους σε Byte

Τελευταία ενημέρωση:

Πληκτρολογήστε ή επικολλήστε κείμενο και δείτε ζωντανά πόσους χαρακτήρες περιέχει σε σύγκριση με το πόσα byte καταλαμβάνει στην πραγματικότητα σε UTF-8 και UTF-16 — οι δύο αριθμοί αποκλίνουν μόλις εμφανιστούν χαρακτήρες εκτός ASCII (τόνοι, κείμενο CJK, emoji).

0
Characters
0
UTF-8 bytes
0
UTF-16 bytes

Τι είναι αυτό το εργαλείο;

Για απλό κείμενο ASCII (αγγλικά γράμματα, ψηφία, βασική στίξη), ο αριθμός χαρακτήρων και ο αριθμός byte είναι ο ίδιος — κάθε χαρακτήρας καταλαμβάνει ακριβώς ένα byte σε UTF-8. Μόλις το κείμενο περιλαμβάνει τονισμένα γράμματα, κινεζικούς/ιαπωνικούς/κορεατικούς χαρακτήρες, κυριλλικά, αραβικά, emoji ή τους περισσότερους άλλους χαρακτήρες εκτός ASCII, αυτό παύει να ισχύει: ένας μόνο χαρακτήρας μπορεί να καταλάβει 2, 3 ή 4 byte σε UTF-8, και 2 ή 4 byte σε UTF-16.

Αυτό έχει σημασία όποτε ένα σύστημα έχει όριο σε byte και όχι σε χαρακτήρες — τα μηνύματα SMS, τα μεγέθη στηλών βάσεων δεδομένων, τα όρια payload API και ορισμένες κοινωνικές πλατφόρμες μετρούν σε byte, όχι σε χαρακτήρες, οπότε το ίδιο κομμάτι κειμένου μπορεί σιωπηλά να υπερβεί ένα όριο ανάλογα με τη γλώσσα ή τα σύμβολα που περιέχει.

Γιατί να το χρησιμοποιήσετε;

  • Εμφανίζει τον αριθμό χαρακτήρων, τα byte UTF-8 και τα byte UTF-16 δίπλα-δίπλα.
  • Μετρά σωστά τα emoji και άλλους χαρακτήρες εκτός του Basic Multilingual Plane ως έναν χαρακτήρα, όχι δύο.
  • Ενημερώνεται ζωντανά καθώς πληκτρολογείτε — χωρίς κουμπί για κλικ.
  • Εκτελείται εξ ολοκλήρου στον browser σας — χωρίς μεταφόρτωση.
  • Δωρεάν, χωρίς εγγραφή, χωρίς όρια.

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

  1. Πληκτρολογήστε ή επικολλήστε κείμενο στο πλαίσιο.
  2. Διαβάστε τον αριθμό χαρακτήρων, τον αριθμό byte UTF-8 και τον αριθμό byte UTF-16 από κάτω — ενημερώνονται καθώς πληκτρολογείτε.

Παράδειγμα

Είσοδος

Hello, 世界! 🌍

Έξοδος

12 χαρακτήρες, 19 byte UTF-8, 26 byte UTF-16

Το τμήμα ASCII ("Hello, " και "! ") καταλαμβάνει 1 byte ανά χαρακτήρα σε UTF-8. Κάθε κινεζικός χαρακτήρας καταλαμβάνει 3 byte, και το emoji καταλαμβάνει 4 byte — γι' αυτό ο αριθμός byte είναι αισθητά υψηλότερος από τον αριθμό χαρακτήρων.

Συνήθεις χρήσεις

  • Έλεγχος αν μια πολύγλωσση περιγραφή προϊόντος χωράει σε στήλη βάσης δεδομένων που ορίζεται με μήκος σε byte αντί για αριθμό χαρακτήρων.
  • Εκτίμηση της χρήσης τμημάτων SMS, καθώς τα SMS χρεώνονται και χωρίζονται ανά μέγεθος byte, και το μη λατινικό κείμενο έχει διαφορετικό όριο ανά τμήμα.
  • Επαλήθευση ότι ένα payload API ή πεδίο φόρμας παραμένει κάτω από ένα όριο μεγέθους βασισμένο σε byte πριν την υποβολή.
  • Κατανόηση του λόγου για τον οποίο ένα string που "φαίνεται σύντομο" απορρίπτεται από ένα σύστημα με έλεγχο μήκους βασισμένο σε byte.

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

Γιατί ο αριθμός χαρακτήρων και ο αριθμός byte δεν ταιριάζουν;

Το κείμενο Unicode αποθηκεύεται ως byte, και το πόσα byte χρειάζεται κάθε χαρακτήρας εξαρτάται από την κωδικοποίηση και τον ίδιο τον χαρακτήρα. Στο UTF-8, οι χαρακτήρες ASCII καταλαμβάνουν 1 byte, τα περισσότερα τονισμένα λατινικά γράμματα και τα κυριλλικά/ελληνικά/εβραϊκά/αραβικά γράμματα καταλαμβάνουν 2 byte, οι περισσότεροι χαρακτήρες CJK καταλαμβάνουν 3 byte, και τα emoji συνήθως καταλαμβάνουν 4 byte. Ο αριθμός χαρακτήρων απλώς μετρά σύμβολα, αγνοώντας τον τρόπο αποθήκευσής τους.

Ποιον αριθμό byte πρέπει να χρησιμοποιήσω για ένα πεδίο με όριο byte;

Χρησιμοποιήστε την κωδικοποίηση που χρησιμοποιεί πραγματικά το σύστημα για αποθήκευση ή μετάδοση του κειμένου — τα περισσότερα σύγχρονα web API, βάσεις δεδομένων και αρχεία χρησιμοποιούν UTF-8, οπότε ο αριθμός byte UTF-8 είναι συνήθως ο σχετικός. Ορισμένα παλαιότερα συστήματα (όπως ο εσωτερικός χειρισμός strings σε Windows/Java) χρησιμοποιούν UTF-16.

Μετρά αυτό το εργαλείο σωστά τα emoji;

Ναι. Πολλά emoji αποθηκεύονται εσωτερικά ως ζεύγος "surrogate" μονάδων κώδικα UTF-16, τα οποία οι απλοϊκές μέθοδοι μέτρησης μετρούν ως 2 χαρακτήρες. Αυτό το εργαλείο μετρά σωστά τα σημεία κώδικα Unicode, οπότε ένα emoji μετράται ως 1 χαρακτήρας, ταιριάζοντας με το πόσους χαρακτήρες βλέπει πραγματικά ένα άτομο.

Είναι αυτό το ίδιο με το εργαλείο Μετρητή Λέξεων;

Όχι — ο Μετρητής Λέξεων εστιάζει στον αριθμό λέξεων και προτάσεων για γραφή. Αυτό το εργαλείο αφορά συγκεκριμένα το μέγεθος σε byte έναντι του αριθμού χαρακτήρων, κάτι που έχει σημασία για τεχνικά όρια και όχι για απαιτήσεις αριθμού λέξεων.

Μεταφορτώνεται το κείμενό μου κάπου;

Όχι. Η μέτρηση γίνεται τοπικά στον browser σας χρησιμοποιώντας τον ενσωματωμένο κωδικοποιητή κειμένου της JavaScript· τίποτα δεν αποστέλλεται σε server.

Σχετικά εργαλεία