05 // Unicode, Symbol & Encoding WorkbenchUTF8-HEX-INSPECTOR
Unicode Code Point & Surrogate Pair Analyzer
Decomposes arbitrary Unicode text into scalar code points, UTF-8 byte arrays, and UTF-16 code units to debug database collation, regex `/u` flags, and Mojibake encoding bugs.
UTF-8 BYTES
34
CODE POINTS
20
UTF-16 UNITS
22
BYTES / CHAR
1.70
| # | Char | Code Point | Decimal | UTF-8 Hex | UTF-16 |
|---|---|---|---|---|---|
| 1 | C | U+0043 | 67 | 43 | 0043 |
| 2 | a | U+0061 | 97 | 61 | 0061 |
| 3 | f | U+0066 | 102 | 66 | 0066 |
| 4 | é | U+00E9 | 233 | C3 A9 | 00E9 |
| 5 | ␣ | U+0020 | 32 | 20 | 0020 |
| 6 | • | U+2022 | 8226 | E2 80 A2 | 2022 |
| 7 | ␣ | U+0020 | 32 | 20 | 0020 |
| 8 | N | U+004E | 78 | 4E | 004E |
| 9 | a | U+0061 | 97 | 61 | 0061 |
| 10 | ï | U+00EF | 239 | C3 AF | 00EF |
| 11 | v | U+0076 | 118 | 76 | 0076 |
| 12 | e | U+0065 | 101 | 65 | 0065 |
| 13 | ␣ | U+0020 | 32 | 20 | 0020 |
| 14 | • | U+2022 | 8226 | E2 80 A2 | 2022 |
| 15 | ␣ | U+0020 | 32 | 20 | 0020 |
| 16 | 𝕏 | U+1D54F | 120143 | F0 9D 95 8F | D835 DD4F |
| 17 | ␣ | U+0020 | 32 | 20 | 0020 |
| 18 | • | U+2022 | 8226 | E2 80 A2 | 2022 |
| 19 | ␣ | U+0020 | 32 | 20 | 0020 |
| 20 | 🧬 | U+1F9EC | 129516 | F0 9F A7 AC | D83E DDEC |
Was this tool helpful?
Reference Table
- 01Precomposed `é` (`U+00E9`, NFC) is 1 code point (2 UTF-8 bytes), whereas decomposed `e` + combining acute (`U+0065 U+0301`, NFD) is 2 code points (3 UTF-8 bytes) that render identically.
- 02Use `str.normalize('NFC')` before hashing or comparing user-entered strings across macOS (HFS+/APFS NFD) and Linux/Windows (NFC).
Frequently Asked Questions
What is the difference between NFC and NFD Unicode normalization?+
NFC composes base letters + accents into single canonical code points where possible, whereas NFD decomposes them into base characters followed by combining marks.
How are UTF-16 surrogate pairs calculated from a code point U > 0xFFFF?+
Subtract `0x10000` to get 20-bit `u`; High Surrogate = `0xD800 + (u >> 10)`, Low Surrogate = `0xDC00 + (u & 0x3FF)`.
Why does SQL `utf8mb3` reject emojis in MySQL?+
Legacy MySQL `utf8` (`utf8mb3`) only stores up to 3 bytes per character (BMP only); always use `utf8mb4` to store 4-byte supplementary code points.