Charset Converter
See text as bytes in UTF-8, UTF-16LE, Shift_JIS, GBK, Big5 or Latin-1, and decode hex back.
How to use it
- Pick a direction: text to hex bytes, or hex bytes to text.
- Choose the encoding: UTF-8, UTF-16LE, Shift_JIS, GBK, Big5 or Latin-1.
- Paste your input - hex input tolerates spaces, commas and 0x prefixes.
- Read the grouped uppercase hex output, or the decoded text, then copy it.
Common use cases
- Debugging binary formats - inspect exactly which bytes a string becomes before writing it to a file or socket.
- Fixing mojibake - take the bytes of wrongly displayed text and decode them with the encoding that was actually used.
- Legacy data import - decode Shift_JIS, GBK or Big5 dumps from older systems into readable text.
- Teaching and documentation - show colleagues concrete byte sequences for encodings instead of abstract descriptions.
Why it stays private
Encoding and decoding run in your browser's memory. Text with credentials or customer data never leaves the device.
FAQ
Q: Why can Shift_JIS, GBK and Big5 decode but not encode? A: Browsers ship TextDecoder tables for legacy encodings, but TextEncoder only produces UTF-8, and no built-in API encodes the legacy tables. The tool states this clearly instead of failing silently - use those encodings in the decode direction.
Q: Is Latin-1 encoding the same as windows-1252? A: For encoding, this tool uses true Latin-1 (ISO-8859-1): characters above U+00FF are rejected. For decoding, the browser maps the label to windows-1252, which shares the lower range but assigns printable glyphs to 0x80-0x9F.
Q: What happens to invalid byte sequences? A: Decoding is non-fatal: invalid sequences are replaced with the Unicode replacement character rather than raising an error, which matches how tolerant text viewers behave.
Your data stays on this device
Charset Converter runs 100% locally. Everything you paste or drop is processed by your own browser and never transmitted. Nothing is stored on our servers — close the tab and it is gone.
Nothing you type is sent to a server, logged, or used for analytics. The page works even with your network disconnected after first load.