โ All Tools
Character Set Detector๐ 100% local
Analyze text to detect character sets, encodings, and scripts used.
Input Text
Related Tools
Counts what is in the text: ASCII against non-ASCII, with the non-ASCII split into Chinese, Japanese kana, Hangul, Arabic and Cyrillic, plus a broad emoji count. It then encodes the input as UTF-8 to report the byte length and the average bytes per character, which is the figure that shows a multi-byte script at work. The scan is a simple loop over the characters already in the page.
How to use it
- Paste the text into the box; the default example is a mixed string.
- Press Analyze.
- Read the per-script counts, then check the byte figures to see how the text would be stored in UTF-8.
Worked example
Hello ไธ็ ๐becomesCharacter Analysis:
Total characters: 10
ASCII: 7
Non-ASCII: 3
Emoji: 1
Chinese (CJK): 2
Japanese (Hiragana/Katakana): 0
Korean (Hangul): 0
Arabic: 0
Cyrillic: 0
UTF-8 bytes: 17
Bytes per char (avg): 1.70Reproduced in Node with the tool's own counting code; the globe is one code point but four UTF-8 bytes.
ะัะธะฒะตั ะผะธัbecomesTotal characters: 10
ASCII: 1
Non-ASCII: 9
Cyrillic: 9
UTF-8 bytes: 19
Bytes per char (avg): 1.90Real output with the zero-count script lines elided; the single ASCII character is the space.
When to use it
- Working out which script in a mixed string is inflating a byte count or a database column size.
- Checking that pasted data is pure ASCII before it goes into a system that rejects anything else.
- Confirming that an emoji is one code point but several bytes, when a field length keeps surprising you.
What it does not do
- It does not detect a file's original encoding. Text in the box is already a JavaScript string, so a Latin-1 or Shift-JIS byte stream was decoded before the tool ever saw it.
- The emoji count uses the broad \p{Emoji} property, which also matches plain digits and the characters # and *, so a string of numbers and hashes reports emoji hits.
- The named script buckets cover CJK, kana, Hangul, Arabic and Cyrillic only. Devanagari, Hebrew, Greek and Thai all fall into Non-ASCII with no script name.
- There is no file input. A large log has to be pasted, which is impractical past a few hundred kilobytes.