How to Encode Unicode Characters
Convert Unicode characters into various representations such as escape sequences, code points, and UTF-8 bytes.
Problem
You need to represent non-ASCII Unicode characters (like emoji or CJK characters) in systems that only accept ASCII.
Prerequisites
- Understanding of Unicode code points
- Familiarity with UTF-8 encoding
Steps
-
1. Find the code point
Look up the Unicode code point of your character. For example, the euro sign € is U+20AC. The code point is a scalar value that uniquely identifies the character in the Unicode standard.
Input€OutputU+20AC -
2. Convert to the target representation
For JavaScript strings, use \u20AC or \u{20AC}. For UTF-8 bytes, encode as 0xE2 0x82 0xAC. For HTML, use € or €. Choose the representation your target system expects.
Input€OutputJS: \u20AC | UTF-8: E2 82 AC | HTML: € -
3. Verify round-trip fidelity
Decode the representation back to the original character and compare. Characters outside the Basic Multilingual Plane (above U+FFFF) require surrogate pairs in UTF-16, so pay extra attention to emoji and rare scripts.
Input\u20ACOutput€
Expected result
A correct ASCII-safe representation of the Unicode character that decodes back to the exact original.
Common errors
- Using \uXXXX for characters above U+FFFF without surrogate pairs
- Use the \u{XXXXX} brace syntax in JavaScript or compute the surrogate pair manually for older environments.
- Confusing UTF-8 byte count with code point value
- UTF-8 uses 1-4 bytes per character. The byte values are not the same as the code point. Use a proper encoder.
Troubleshooting
- If a character shows as two boxes, it was split into surrogate pairs incorrectly. Use a UTF-8-aware tool.
- Check that your file editor saves as UTF-8 without BOM to avoid hidden bytes.
Security limits
- Unicode encoding does not sanitize input. Be aware of homoglyph attacks where visually identical characters from different scripts are used to deceive.
Related tools
Related glossary
Related tasks
Ready to run it?