TEXT AND ENCODING CONVERSION · TEXT & ENCODING
Unicode Code Point Converter
Convert text to Unicode code points in U+, hexadecimal, decimal, JavaScript, Python, HTML and CSS notation, one code point per character. Free, instant and entirely client-side.
Unicode code points range from U+0000 to U+10FFFF, but not every value is assigned to a character.
Convert text to Unicode code points in U+, hexadecimal, decimal, JavaScript, Python, HTML and CSS notation, one code point per character.
- Unicode encodings compared
- 4
- UTF-8 bytes per code point
- 1–4
- UTF-16 / UTF-32 unit size
- 2 / 4
- Client-side
- 100%
- Source: No upload
Quick answer
Convert text to Unicode code points in U+, hexadecimal, decimal, JavaScript, Python, HTML and CSS notation, one code point per character. The calculator applies code point = text.codePointAt(i); notation = format(codePoint, style) and shows every intermediate value.
On this page
- 1Quick Answer
- 2Interactive Calculator
- 3Unicode Code Point Converter: Character & Byte Breakdown
- 4Key Takeaways
- 5Developer Statistics
- 6Implementation Plans
- 7Reference Tables
- 8Formulas & How to Use
- 9Worked Examples
- 10Advanced Education: Unicode Code Point Converter
- 11Language Playbooks
- 12Glossary
- 13Mistakes & Pro Tips
- 14Use Cases
- 15Related Calculators
- 16Long-Tail Answers
- 17FAQs (20)
- 18References
Interactive Calculator
Enter a value — every result updates instantly, in your browser. Free forever, no sign-up.
Unicode Code Point Converter
All inputs are calculated locally with exact integer arithmetic where possible.
Live result
U+0041 U+00E9 U+1F600
3 code points · highest U+1F600
Code points
3
Highest code point
U+1F600
UTF-8 bytes
7
UTF-16 code units
4
Unicode Code Point Converter: Character & Byte Breakdown
Code points, code units, bytes and the exact mapping behind the result.
| Code points | 3 |
|---|---|
| Highest code point | U+1F600 |
| UTF-8 bytes | 7 |
| UTF-16 code units | 4 |
| Surrogate pairs | 1 |
Per-code-point details
| # | Character | Code point | Decimal | UTF-8 | UTF-16LE |
|---|---|---|---|---|---|
| 0 | A | U+0041 | 65 | 41 | 41 00 |
| 1 | é | U+00E9 | 233 | C3 A9 | E9 00 |
| 2 | 😀 | U+1F600 | 128512 | F0 9F 98 80 | 3D D8 00 DE |
Step-by-step calculation
- 1Iterate the string by code point rather than by UTF-16 index.
- 2Format each value as U+ notation.
- 3Keep code points above U+FFFF as a single value; UTF-16 stores them as two code units.
Key Takeaways
The 30-second version — the exact answers Google loves to feature.
- 1Unicode code points range from U+0000 to U+10FFFF, but not every value is assigned to a character.
- 2The Basic Multilingual Plane ends at U+FFFF; characters above it need surrogate pairs in UTF-16.
- 3U+ notation is the canonical way to name a code point because it is independent of any byte encoding.
- 4Unicode defines 1,114,112 code points; UTF-8 stores them in one to four bytes each.
- 5The same text has different byte lengths in UTF-8, UTF-16 and UTF-32, so always state the encoding.
Developer Statistics & Reference Facts
Numbers worth remembering. Use them to sanity-check inputs, ranges and boundary values before shipping code.
- Unicode encodings compared
- 4
- UTF-8 bytes per code point
- 1–4
- UTF-16 / UTF-32 unit size
- 2 / 4
- Client-side
- 100%
- Source: No upload
- Integer math
- Exact
- Source: BigInt
- Unicode code points
- 1.1M
Implementation Plans Compared: Which Workflow Fits?
Three practical ways to use this calculator. Match the plan to the risk level of your project, then follow its safeguards.
Quick check
Best for: Everyday conversions, debugging and code reviews
- Method: Paste the text or bytes into the text and encoding conversion tool and read the headline result.
- Precision: UTF-8 byte counts and Unicode code points are exact; display-width estimates are approximate.
- Safeguards: Cross-check one ASCII value, one accented value and one emoji before trusting a length rule.
Production implementation
Best for: Shipping code that reads, stores or transmits text
- Method: Use an explicit encoding, decode with errors="strict", and keep the byte and character layers separate.
- Precision: Match the exact encoding and normalization form used by the storage layer or wire protocol.
- Safeguards: Add tests for ASCII, CJK, emoji, combining marks, embedded NULs and lone surrogates.
Security review
Best for: Input validation, identifiers and URL handling
- Method: Normalize before comparing, reject unexpected control characters, and encode at the correct output context.
- Precision: Apply NFC for identifiers and the output-context encoder (HTML, URL, JSON) for the destination.
- Safeguards: Test homoglyphs, zero-width characters, double encoding and mixed-script input.
Quick Reference Tables
Widths, ranges, boundary values and language types — the lookup tables you will come back to.
Notation examples for U+1F600
| Notation | Value | Used by |
|---|---|---|
| U+ | U+1F600 | Unicode documentation |
| Hex | 1F600 | Code tables |
| Decimal | 128512 | Numeric APIs |
| JavaScript | \u{1F600} | ES2015+ string literals |
| Python | \U0001F600 | Python 3 string literals |
| HTML | 😀 | HTML documents |
| CSS | \1F600 | CSS content property |
Unicode encodings compared
| Encoding | Unit size | ASCII “A” | “é” | “😀” |
|---|---|---|---|---|
| UTF-8 | 1–4 bytes | 41 | C3 A9 | F0 9F 98 80 |
| UTF-16LE | 2 or 4 bytes | 41 00 | E9 00 | 3D D8 00 DE |
| UTF-16BE | 2 or 4 bytes | 00 41 | 00 E9 | D8 3D DE 00 |
| UTF-32LE | 4 bytes | 41 00 00 00 | E9 00 00 00 | 00 F6 01 00 |
| UTF-32BE | 4 bytes | 00 00 00 41 | 00 00 00 E9 | 00 01 F6 00 |
Formulas & How to Use This Calculator
Core relationship
code point = text.codePointAt(i); notation = format(codePoint, style)
Verification
1. Decode the output with the stated encoding. 2. Round-trip it back to the original and compare. 3. Check the code-point, UTF-16 and UTF-8 counts independently. 4. Repeat with ASCII, accented text, CJK and one emoji.
How to use — step by step
- Paste or type the text, bytes or code points into the input panel.
- Choose the encoding, notation or transformation mode that matches your data.
- Read the headline result — a converted string, a count or a similarity score.
- Open the per-character or per-byte breakdown to verify the mapping.
- Test one ASCII character, one accented character and one emoji before relying on the rule.
- Copy the result and keep the encoding and normalization form documented in your code.
Worked Examples
Real numbers and raw bits, fully worked — copy the pattern for your own code or protocol.
ASCII and accented
Inputs
Aé
Math
A = U+0041; é = U+00E9
Result
U+0041 U+00E9
Emoji
Inputs
😀
Math
U+1F600 is outside the BMP; UTF-16 needs a surrogate pair
Result
U+1F600
CJK
Inputs
中
Math
中 = U+4E2D = 20,013 decimal
Result
U+4E2D
Advanced Education: Unicode Code Point Converter
Beyond the calculator — the mental models, language rules and edge cases professionals use.
Characters, code points and code units are three different things
A user sees a character, Unicode assigns a code point, and an encoding stores one or more code units. “A” is one code point and one UTF-8 byte. “é” is one code point but two UTF-8 bytes. “😀” is one code point, four UTF-8 bytes and two UTF-16 code units. The Unicode Code Point Converter reports each layer separately because mixing them is the most common source of off-by-one bugs in length checks, database columns and truncation logic. Decide which layer your requirement actually refers to before you compare a number.
Why UTF-8 length differs from string length
UTF-8 uses one byte for U+0000–U+007F, two for U+0080–U+07FF, three for U+0800–U+FFFF and four for U+10000–U+10FFFF. A string of 100 English letters is 100 bytes, while 100 CJK characters may be 300 bytes and 100 emoji may be 400 bytes. The Unicode Code Point Converter encodes the actual text rather than estimating from the character count, so the result is exact. Use byte length for network payloads, database limits and storage budgets, and use code points or graphemes for user-facing character limits.
UTF-16 and surrogate pairs
UTF-16 stores the Basic Multilingual Plane in one 16-bit code unit. Code points above U+FFFF are split into a high surrogate in the range D800–DBFF and a low surrogate in DC00–DFFF. JavaScript, Java and Windows APIs expose UTF-16 lengths, which is why an emoji can count as two characters. The Unicode Code Point Converter shows the individual code units and flags surrogate pairs. When slicing user text, never cut between a high and a low surrogate; use a code-point-aware or grapheme-aware API instead.
Encoding conversion is not encryption
Base64, percent-encoding, HTML entities and Unicode escapes are reversible representations, not protection. Anyone can decode them without a key. Use them to move data safely through a text-only channel, not to hide secrets. The Unicode Code Point Converter makes the transformation transparent and copy-ready. If the data is sensitive, encrypt it first with an authenticated cipher, then encode the ciphertext for transport. Encoding changes the alphabet; encryption changes who can read the message.
Escaping rules are language-specific
JSON uses \uXXXX for control characters and allows a limited set of short escapes. JavaScript accepts \xXX, \uXXXX and \u{...}. Python distinguishes \x, \u and \U. C uses octal and hexadecimal escapes with different termination rules. The Unicode Code Point Converter applies one explicit convention at a time so the output matches the target language. When generating code or configuration, prefer a standard library serializer over hand-built string concatenation; it handles quotes, backslashes and control characters consistently.
Security: normalization and homoglyphs
Two different code-point sequences can render identically. “é” can be a single precomposed code point or “e” plus a combining acute accent. Unicode normalization (NFC or NFD) makes comparisons consistent. Homoglyphs from different scripts can impersonate Latin letters in usernames and URLs. The Unicode Code Point Converter reveals the underlying code points so you can spot invisible characters, zero-width joiners and mixed scripts. Normalize before comparing identifiers, and restrict allowed scripts where impersonation is a risk.
Length limits in databases and APIs
Database columns usually limit bytes or characters, and the definition varies by engine. MySQL VARCHAR(n) counts characters in the column charset; PostgreSQL varchar(n) counts characters; a byte-oriented API may count UTF-8 bytes. A 200-character emoji string can exceed a 255-byte limit. Check the actual unit, measure with the same encoding the storage layer uses, and leave headroom for normalization and future schema changes. The Unicode Code Point Converter gives you both counts from the same input.
Testing text transformations with edge cases
A text tool that works for “Hello” may fail for emoji, combining marks, right-to-left scripts or lone surrogates. Build a small corpus: ASCII, accented Latin, CJK, an emoji, a flag, a family emoji with zero-width joiners, a newline, a tab, quotes and a backslash. Run the transformation in both directions and compare the round trip. The Unicode Code Point Converter is useful for generating expected output, but the final assertion should run in the target runtime and version.
Language & Platform Playbooks
The same bit pattern behaves differently in every language. Here is how to adapt the conversion safely.
Python
Python 3 strings are sequences of Unicode code points. Use len(text) for code points, len(text.encode('utf-8')) for UTF-8 bytes, and the unicodedata module for normalization. For unicode code point converter, prefer str.encode/decode with an explicit codec and errors='strict' so invalid input fails loudly. The standard library handles surrogate pairs and most legacy codecs; do not hand-roll UTF-8 parsing.
JavaScript / TypeScript
JavaScript strings are UTF-16 code units. Use Array.from(text) for code points, TextEncoder/TextDecoder for UTF-8, and Intl.Segmenter for grapheme clusters where available. For unicode code point converter, avoid split('') on text that may contain emoji; it splits surrogate pairs. Buffer and btoa are not available in browsers, so use TextEncoder plus a small Base64 helper.
Java / Kotlin
Java String.length() counts UTF-16 code units; codePointCount() counts code points. Use StandardCharsets.UTF_8 with getBytes and new String for byte conversion, and Normalizer for NFC/NFD. Kotlin’s String is the same UTF-16 representation. For unicode code point converter, specify the charset explicitly instead of relying on the platform default.
Go
Go strings are immutable byte sequences, usually UTF-8. Ranging over a string yields runes (code points); len(s) yields bytes. Use utf8.RuneCountInString for code points, []rune(s) for rune slices, and golang.org/x/text/unicode/norm for normalization. For unicode code point converter, validate with utf8.ValidString when the input may be malformed.
Rust
Rust strings are guaranteed UTF-8. Use .chars() for code points, .bytes() for bytes, and the unicode-segmentation crate for grapheme clusters. Slicing a String by byte index can panic if it lands inside a code point. For unicode code point converter, work with char_indices() when you need both position and character, and use encoding_rs for legacy encodings.
C / C++
C and C++ distinguish char, wchar_t, char16_t and char32_t. UTF-8 is usually stored in char arrays; convert with codecvt, ICU or a dedicated library rather than manual byte surgery. For unicode code point converter, keep the byte length separate from the display width and validate the input before conversion. Do not assume wchar_t is 32-bit on every platform.
Glossary: Key Terms Explained
- Code point
- An integer assigned by Unicode to a character or symbol, written as U+XXXX.
- UTF-8
- A variable-width encoding that uses one byte for ASCII and up to four bytes for other code points.
- Code unit
- The storage unit of an encoding: one byte for UTF-8, two bytes for UTF-16 and four for UTF-32.
- Surrogate pair
- Two UTF-16 code units that together encode one code point above U+FFFF.
- Bit
- A binary digit: 0 or 1. Bits are grouped into bytes, words and registers.
- Byte
- Eight bits. A byte is the smallest addressable unit on most CPUs and the usual unit for file sizes.
- Word
- The natural register width of a CPU. On modern 64-bit systems a word is usually 64 bits, though C’s int is often 32 bits.
- MSB / LSB
- Most significant bit and least significant bit. The MSB carries the largest positional weight and is the sign bit in signed integers.
Common Mistakes & Pro Tips
Mistakes that break conversions
- Converting bytes without confirming their source encoding first.
- Assuming a character count equals a byte count or a UTF-16 length.
- Counting UTF-16 code units and calling them characters; JavaScript and Java lengths are not character counts.
- Decoding bytes with the wrong encoding, which produces mojibake instead of an error.
- Treating Base64, percent-encoding or HTML escaping as encryption; all three are reversible by anyone.
- Truncating between surrogate halves or inside a multi-byte UTF-8 sequence.
Pro tips for production code
- Record the encoding next to every stored or transmitted string.
- Round-trip a value before trusting a conversion.
- Specify the encoding at every boundary: file, network, database and display.
- Normalize identifiers with NFC before comparing them, and reject control or zero-width characters where they serve no purpose.
- Use byte length for storage limits and grapheme clusters for user-facing character limits.
- Prefer the platform encoder or serializer over hand-built escaping; it handles the edge cases you will forget.
Who Should Use This Calculator?
- ▸ API payload inspection and protocol debugging.
- ▸ Database column sizing and storage budgeting.
- ▸ API validation: confirm that a payload fits a byte limit before sending it.
- ▸ Database sizing: translate character limits into bytes for the actual column encoding.
- ▸ Debugging: explain mojibake, double-encoded URLs and invisible Unicode characters.
- ▸ Security review: detect homoglyphs, zero-width joiners and mixed-script identifiers.
Related Programming Calculators
Keep going — every tool below links directly into this workflow.
People Also Search For
Tap a long-tail question to jump to the matching FAQ answer.
Frequently Asked Questions (20)
Long-tail answers: each question targets a real Google search about unicode code point converter — click to expand.
Showing 20 of 20 answers.
What is the difference between a code point and a UTF-16 code unit?
Why does the same character sometimes have two code-point sequences?
What does the unicode code point converter show?
How do I verify a unicode code point converter result?
What is a common mistake when using the unicode code point converter?
Is ASCII the same as UTF-8?
Why does one emoji count as two characters in JavaScript?
What is the difference between UTF-8 and UTF-32?
Does the Unicode Code Point Converter count characters or bytes?
Which Unicode version does the Unicode Code Point Converter use?
Why does the Unicode Code Point Converter show a different length from JavaScript?
Is the Unicode Code Point Converter safe for confidential text?
Why do I see a replacement character (�) in the Unicode Code Point Converter output?
Can the Unicode Code Point Converter handle emoji and combining marks?
What is the unicode code point converter used for?
How do I read the unicode code point converter result?
What formula does the unicode code point converter use?
What is a common mistake when using unicode code point converter?
How do I verify a unicode code point converter result by hand?
Does the unicode code point converter work offline?
Resources & Authoritative References
Further reading
- Unicode — UTF-8 encoding form — The normative definition of UTF-8, code points and surrogate pairs.
- MDN — TextEncoder — How browsers encode JavaScript strings as UTF-8 bytes.
- MDN — String.length — Why JavaScript string length counts UTF-16 code units.
- RFC 4648 — Base16, Base32, Base64 — The standard alphabets, padding rules and URL-safe Base64 variant.
- WHATWG — URL standard — Percent-encoding rules used by encodeURIComponent and URL parsing.
- Python — Unicode HOWTO — A practical guide to code points, encodings and normalization.
Authoritative sources
Was this calculator helpful?
Last updated: October 2026 · Free forever · No sign-up · Part of Programming Calculators at Atlascalcs.com · All math runs in your browser