Verify a hex hash input
- Encode your plaintext in UTF-8 byte mode and note the hex.
- Generate SHA-256 with Hash Generator — digest is hex by default.
- Compare compactness with Base64 Encoder for the same bytes.
This Text to Hex converter encodes strings as hexadecimal in your browser with three explicit modes: **UTF-8 bytes** (standard for protocols and crypto), **Unicode code points** (U+ notation style), and **Latin-1** (legacy single-byte mapping).
Unlike basic converters that misuse `charCodeAt` for all Unicode, this tool shows per-character UTF-8 breakdown, a hex dump with ASCII gutter, and side-by-side binary and Base64 comparison. Delimiters (spaces, colons, none), prefixes (`0x`, `\x`), uppercase toggle, file upload, share URLs, and code snippets for JavaScript/Python/Go are included.
Select UTF-8 bytes (default for protocols), Unicode code points, or Latin-1. Pick Text → Hex or Hex → Text direction.
Type, paste, or upload a .txt file (max 512 KB). For decode, paste hex with spaces, colons, 0x prefixes, or continuous digits.
Use the character byte inspector and hex dump to verify multi-byte sequences (e.g. euro, emoji). Compare binary and Base64 in the panel below.
Copy hex output (Ctrl+Shift+C), download as .hex/.txt, or copy a share URL (Ctrl+Shift+S) with your settings encoded.
Common real-world scenarios where this tool saves time.
Inspect exact UTF-8 bytes sent on the wire for JSON, HTTP, or binary protocols—verify escaping before comparing with packet captures.
SHA-256 and MD5 digests are hex-encoded. Convert sample strings to hex here, then verify with the Hash Generator.
Paste hex from debug logs or memory dumps; hex dump view shows offset and ASCII gutter for quick orientation.
Byte inspector makes UTF-8 multi-byte sequences visible—useful for students learning the difference between code points and wire bytes.
Step-by-step chains that connect related tools for common tasks.
Input
HelloOutput
UTF-8: 48 65 6C 6C 6FEach ASCII letter is one UTF-8 byte identical to its code point value.
Input
€Output
E2 82 AC (3 bytes)UTF-8 represents U+20AC as three bytes — not a single 20AC code-unit pair.
Input
😀Output
UTF-8: F0 9F 98 80 · Code point: 1F600Switch modes to see wire-format bytes vs scalar U+1F600 notation.
UTF-8 mode uses the Web API TextEncoder to produce bytes, then formats each byte as two hex digits. Decode parses hex pairs back to bytes and decodes with TextDecoder. Code-point mode uses String.codePointAt / fromCodePoint for scalar values.
| Mode | Hello | € (euro) | Best for |
|---|---|---|---|
| UTF-8 bytes | 48 65 6C 6C 6F | E2 82 AC | Protocols, crypto, wire format |
| Code points | 48 65 6C 6C 6F | 20AC | Unicode U+ notation, scalar values |
| Latin-1 | 48 65 6C 6C 6F | A4 (if in range) | Legacy single-byte systems |
| Format | Size ratio | Readability | Typical use |
|---|---|---|---|
| Hex | 2× input bytes | High — byte-by-byte | Hashes, MACs, debug dumps |
| Base64 | ~1.33× input | Medium | Email, JSON, data URLs |
| Binary | 1× (raw) | Low | Low-level bitwise work |
Protocols transmit UTF-8 bytes, not JavaScript UTF-16 code units. Code-point mode is for notation, not wire format.
Space-separated pairs (48 65 6C) are easier to proofread than continuous strings (48656C).
Surrogate-pair bugs in naive converters split emoji into two values—UTF-8 mode shows the correct four-byte sequence.
Switch to UTF-8 bytes mode — uses TextEncoder, not charCodeAt alone.
Remove stray characters; use normalize or add leading zero to single-digit nibble if intentional.
Likely cause: Hex was encoded as UTF-8 bytes but decoded as Latin-1 code units, or vice versa.
Fix: Match decode mode to how the hex was produced. UTF-8 wire bytes need UTF-8 byte mode.
Likely cause: Each byte E2, 82, AC was decoded as a separate Latin-1 character.
Fix: Use UTF-8 byte mode decode — three bytes form one U+20AC character.
Large files exceed the 512 KB text upload limit. Use a dedicated binary hex dump tool or xxd locally.
URL encoding uses percent-hex per byte but with % prefix rules. Use URL Encoder for query strings.
This tool converts representation—it does not hash or encrypt. Use Hash Generator or proper crypto libraries.
Continue the workflow with the right follow-up tool.
UTF-8 hex shows the actual bytes transmitted on the network—€ is E2 82 AC (three bytes). Code point hex shows the scalar value U+20AC as 20AC (one value). Both are valid; choose based on whether you need wire bytes or Unicode notation.
Naive converters use charCodeAt(0), which returns UTF-16 code units. Emoji and supplementary characters split into two values (D83D DE00). This tool uses TextEncoder for UTF-8 bytes and codePointAt for scalar mode—matching developer expectations.
Space-separated (48 65 6C), continuous (48656C6C6F), colon-separated, 0x prefixes (0x48 0x65), or C-style (\x48\x65). Invalid characters and odd-length byte strings show a clear error.
Hex uses 2 characters per byte (100% overhead). Base64 uses ~33% overhead. Hex is easier to debug byte-by-byte; Base64 is more compact for large data. This tool shows both for the same UTF-8 bytes.
No. Conversion uses TextEncoder, TextDecoder, and local string parsing in your browser. Share URLs encode settings in the query string only.
Hex digits A–F and a–f are equivalent. Toggle uppercase for convention (many specs use uppercase for hashes and MAC addresses).
All encoding runs in your browser via TextEncoder/TextDecoder. Inputs are not uploaded to EverydayTools servers.
UTF-8 output matches TextEncoder byte-for-byte in supported browsers.
Advertisement
Reviewed by EverydayTools Developer Tools Team on 2026-07-05.
Same workflow or intent — pick the next step without leaving the site.
Generate MD5, SHA-1, SHA-256, SHA-384, and SHA-512 digests from text or files in your browser. Verify download checksums—nothing is uploaded.
Escape or unescape strings for JavaScript, HTML, JSON, regex, and URL contexts—handles quotes, backslashes, newlines, and special characters.
Encode text to Base64 or decode Base64 strings free in your browser. UTF-8, URL-safe mode, live convert, file upload—no signup.
Free text to binary converter — encode any text to 8-bit binary (0s and 1s) and decode binary back to text. Supports ASCII and UTF-8 encoding. Instant, browser-based, no signup. Runs locally in your browser when supported—no upload required for normal use.
Free .env file parser — paste any .env file and extract all environment variables as structured JSON or YAML. Useful for config migration and debugging. No signup needed. Runs locally in your browser when supported—no upload required for normal use.
Generate cryptographically secure random API keys in hex, base64, or alphanumeric format — instantly in your browser with no upload, no signup.
Frequently opened tools from the same category.
Free JSON formatter — paste minified or messy JSON and instantly get beautified, indented output with syntax highlighting and error detection. Browser-based, no server upload. Runs locally in your browser when supported—no upload required for normal use.
Free JSON diff & compare — structural side-by-side diff, ignore paths, array modes, RFC 6902 patch and merge patch export. Runs locally in your browser—no upload.
Free UUID generator: v4, v7 & v1 GUIDs in your browser—bulk up to 1,000, validate, export JSON/CSV. crypto.randomUUID; never uploaded.
Free random number generator — Web Crypto integers or decimals, no-repeat draws, dice, coin flip, and list picker. Copy or CSV. Runs locally in your browser.
Cross-category tools others open in the same session.
Free JSON formatter — paste minified or messy JSON and instantly get beautified, indented output with syntax highlighting and error detection. Browser-based, no server upload. Runs locally in your browser when supported—no upload required for normal use.
Compress JPG, PNG & WebP in your browser—up to 80% smaller, batch 25 files, 50/100/200 KB presets. Files stay on your device. No signup.
Free PDF merger — combine multiple PDF files into one document. Drag to reorder files, preview pages, and download the merged PDF instantly. No signup, fully browser-based. Runs locally in your browser when supported—no upload required for normal use.
Instantly count words, characters, sentences, paragraphs, and reading time. Great for essays, articles, and SEO writing. No signup — works as you type. Runs locally in your browser when supported—no upload required for normal use.
Guides and walkthroughs that reference this tool.
Step-by-step guide to calculating your calorie deficit for weight loss using the Mifflin-St Jeor equation and TDEE. Includes BMR formulas, activity multipliers, macro targets, and a free browser-based calorie calculator.
What regex is, how pattern syntax maps to real strings, and where to use it for validation, search-replace, and log parsing—with a quick reference.
Browse full tool collections by topic.