Máy tính độ dài chuỗi
Phân tích độ dài văn bản theo ký tự, byte, cụm grapheme và hơn thế nữa.
Đơn vị mã JS (UTF-16)
Điểm mã Unicode
Cụm Grapheme
Byte UTF-8
Từ
Dòng
Tại sao các con số này khác nhau?
- Đơn vị mã JS —
.lengthtrong JavaScript. Đếm các đơn vị mã UTF-16 (emoji = 2). - Điểm mã Unicode —
[...str].length. Mỗi điểm mã là một mục. Gần hơn với các ký tự 'thực'. - Cụm Grapheme — Những gì con người nhận thức là ký tự đơn. Cờ quốc gia, emoji màu da và ký hiệu kết hợp được tính là một.
- Byte UTF-8 — Kích thước lưu trữ khi mã hóa dưới dạng UTF-8. ASCII = 1 byte, emoji = 4 byte.
Câu hỏi thường gặp
The String Length Calculator reports six distinct length metrics for any text: JavaScript code units (UTF-16 .length), Unicode codepoints, grapheme clusters (perceived characters), UTF-8 byte count, word count, and line count.
JavaScript measures string length in UTF-16 code units, so characters above U+FFFF (like most emoji) count as 2. Python 3 counts Unicode codepoints, so each character counts as 1. The String Length Calculator shows both metrics simultaneously so you can see the discrepancy for any input.
A grapheme cluster is what a human perceives as a single character — for example, a flag emoji (two regional indicator letters) or a skin-tone emoji (base emoji plus a modifier) both appear as one character visually but span multiple codepoints. The String Length Calculator uses the browser's Intl.Segmenter API to count grapheme clusters accurately.
Paste your text into the String Length Calculator and read the UTF-8 Bytes metric. ASCII characters cost 1 byte each, most Latin-extended and common symbols cost 2, CJK characters cost 3, and emoji cost 4 bytes in UTF-8.
Many systems enforce byte-based limits rather than character limits — database column sizes, HTTP header values, message queue payloads, and API fields are common examples. The String Length Calculator makes it easy to check whether your text fits within such constraints.
JavaScript strings are encoded as UTF-16, and characters above U+FFFF require two code units called a surrogate pair. The .length property counts code units, not characters, so a single emoji can return 2. Unicode codepoints count actual characters using the spread operator [...str].length.
Yes — the calculator correctly handles all Unicode text including emoji, family sequences, flag sequences, and combining characters. The grapheme cluster count uses the Intl.Segmenter API for browser-native accuracy.
Yes — all whitespace characters (spaces, tabs, newlines) are included in the character and byte counts. Words are counted by splitting on whitespace, and lines are counted by newline characters, matching typical editor behavior.
UTF-16 byte size equals the JavaScript code unit count multiplied by two, since each UTF-16 code unit is 2 bytes. Characters in the supplementary planes (above U+FFFF) use two code units and therefore cost 4 bytes in UTF-16.
Yes, with caveats. Twitter counts in Unicode codepoints with special rules for URLs; SMS uses UTF-16 code units with different limits for GSM-7 versus Unicode messages. The calculator shows all relevant metrics so you can apply the platform's specific counting rules.