Apa teks dari 48 65 6C 6C 6F?
Hello 48 adalah H, 65 adalah e, 6C adalah l, dan 6F adalah o di ASCII dan UTF-8.
Konversi hex ke teks dan teks ke hex. Tempel hex dalam bentuk apa pun — berspasi, 0x, \x, output xxd atau hexdump, array byte Java atau C — dan ASCII, UTF-8, GBK, atau UTF-16 terdeteksi otomatis. Berjalan di browser.
Dibaca sebagai hex polos · 13 byte
Hello, 世界
Terdeteksi otomatis sebagai UTF-8: setiap urutan multi-byte valid.
Hasilnya sendiri berupa hex — kemungkinan dikonversi dua kali. Satu putaran lagi menghasilkan:
| Encoding | Terbaca sebagai |
|---|---|
| UTF-8 Ter-decode dengan bersih | Hello, 世界 |
| GBK / GB18030 Ter-decode dengan bersih | Hello, 涓栫晫 |
| UTF-16LE Ada byte yang tak bisa di-decode | 效汬Ɐ隸闧� |
| UTF-16BE Ada byte yang tak bisa di-decode | 䡥汬漬⃤뢖� |
| ISO-8859-1 Ter-decode dengan bersih | Hello, ä¸<96>ç<95><8C> |
48 65 6C 6C 6F 2C 20 E4 B8 96 E7 95 8C
Ditulis dan ditinjau oleh developer yang membangun utilitas encoding Go Tools. Setiap nilai hex dan output yang dikutip di halaman ini dihasilkan oleh engine halaman ini sendiri dan diperiksa oleh pengujian otomatis.
Hello 48 adalah H, 65 adalah e, 6C adalah l, dan 6F adalah o di ASCII dan UTF-8.
Biasanya 3 byte di UTF-8, 2 di GBK 你 adalah E4 BD A0 di UTF-8 dan C4 E3 di GBK.
CR LF (\r\n) Carriage return diikuti line feed — akhir baris yang dipakai Windows, HTTP, dan sebagian besar set perintah serial.
41 Huruf kecil a adalah 61; huruf besar dan huruf kecil selalu berselisih 20.
Heksadesimal (hex) adalah cara menuliskan byte: setiap byte, dari 0 sampai 255, ditulis sebagai dua digit dari 00 sampai FF. Konversi hex ke teks mengubah byte-byte itu kembali menjadi teks yang bisa dibaca, dan selalu melibatkan pilihan character encoding — tabel yang menentukan byte, atau urutan byte, mana yang mewakili karakter mana.
Untuk teks bahasa Inggris, pilihan itu jarang terasa, karena ASCII, UTF-8, GBK, dan sebagian besar encoding lain sepakat soal byte 00 sampai 7F. Untuk teks lainnya, perbedaannya langsung terlihat. Byte C4 E3 BA C3 adalah 你好 dalam GBK dan tidak valid dalam UTF-8, sedangkan 你好 dalam UTF-8 adalah E4 BD A0 E5 A5 BD. Hex hanyalah separuh informasi; separuh lainnya adalah encoding.
String ke hex adalah kebalikannya: encode teks menjadi byte, lalu tulis setiap byte sebagai dua digit hex. Developer memakainya untuk melihat persis apa yang lewat di jalur serial atau masuk ke kolom database, untuk memasukkan data biner ke dalam source code, dan untuk membandingkan apa yang sebenarnya dikirim oleh dua sistem.
$ echo 48656c6c6f | xxd -r -p
Hello
>>> bytes.fromhex('c4e3bac3').decode('gbk')
'你好'
>>> bytes.fromhex('c4e3bac3').decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc4 in position 0: invalid continuation byte Berspasi, rapat, dipisah titik dua atau tanda hubung, nilai 0x, escape \x, encoding %, array C, Go, dan Java, output Arrays.toString Java yang bertanda (signed), literal bytes Python, Buffer Node.js, serta layar penuh xxd, hexdump -C, dan od. Halaman ini memberi tahu apa yang dikenali dan apa yang dibuang.
Deteksi otomatis memeriksa byte-order mark, UTF-8 yang valid, UTF-16, ASCII murni, lalu GBK, dan menyebutkan aturan mana yang menentukan. GBK hanya dipilih jika byte-nya terbaca sebagai karakter Mandarin yang umum, sehingga frame biner pendek dilaporkan sebagai kemungkinan besar bukan teks, bukan sebagai karakter Mandarin tanpa makna.
Byte yang sama ditampilkan sebagai UTF-8, GBK, UTF-16LE, UTF-16BE, dan ISO-8859-1, masing-masing ditandai apakah ter-decode dengan bersih atau tidak. Ketika teks keluar kacau, hasil baca yang benar biasanya ada satu baris di bawahnya.
NUL, CR, LF, ESC, dan byte kontrol lainnya ditampilkan sebagai ␀ ␍ ␊ ␛, sehingga 00 di akhir atau 0D yang hilang dalam data protokol langsung menonjol. Menyalin tetap menghasilkan karakter aslinya.
Teks → Hex menghasilkan hex berspasi atau rapat, daftar 0x, escape \x, array C gaya xxd -i, byte[] Java dengan nilai bertanda, literal bytes Python yang sesuai dengan repr(), []byte Go, atau dump xxd — dan halaman ini bisa membaca kembali semuanya.
Parsing dan decoding berjalan secara lokal dengan JavaScript. Tidak ada yang diunggah, disimpan, atau dimasukkan ke URL, jadi packet capture dan log produksi aman untuk ditempel.
bytes.fromhex(h).decode() bytes.fromhex('48 65 6c 6c 6f').decode('utf-8') mengembalikan 'Hello'; spasi di antara byte diperbolehkan, prefiks 0x tidak. Kebalikannya adalah s.encode('utf-8').hex(), atau .hex(' ') untuk output berspasi. Berikan 'gbk' untuk men-decode atau meng-encode teks Mandarin dalam GBK.
Buffer.from(h, 'hex') Buffer.from(h, 'hex').toString('utf8') men-decode, Buffer.from(s, 'utf8').toString('hex') meng-encode. Input tidak valid tidak dianggap error: decoding berhenti di pasangan buruk pertama dan digit ganjil di akhir dibuang, jadi validasi dulu.
TextDecoder / TextEncoder Ubah setiap pasangan dengan parseInt(pair, 16) ke dalam Uint8Array, lalu new TextDecoder('utf-8').decode(bytes). TextDecoder juga bisa membaca 'gbk', 'big5', dan 'shift_jis', tetapi TextEncoder hanya menghasilkan UTF-8.
HexFormat.of() new String(HexFormat.of().parseHex(h), StandardCharsets.UTF_8) men-decode dan HexFormat.of().formatHex(s.getBytes(StandardCharsets.UTF_8)) meng-encode. Di versi lama, format setiap byte dengan String.format("%02x", b); hindari Integer.toHexString(b), yang mencetak ffffffe4 untuk byte negatif.
encoding/hex hex.DecodeString(h) mengembalikan byte-nya dan string(b) menjadikannya string; hex.EncodeToString([]byte(s)) melakukan kebalikannya. Paket ini ketat: spasi menghasilkan invalid byte: U+0020 ' ' dan panjang ganjil menghasilkan odd length hex string.
sscanf with %2hhx Telusuri string dua digit sekaligus ke dalam buffer unsigned char dan tambahkan '\0' sebagai penutup. Untuk mencetak hex, cast ke unsigned char dan pakai %02X; jika tidak, byte di atas 0x7F bisa tercetak sebagai FFFFFFE4 di platform yang char-nya bertanda.
hex2bin() / bin2hex() hex2bin('48656c6c6f') mengembalikan Hello dan bin2hex('Hello') mengembalikan 48656c6c6f. Manual PHP mendokumentasikan bahwa hex2bin() mengembalikan false disertai E_WARNING untuk input yang panjangnya ganjil atau tidak valid.
xxd -r -p / xxd -p echo 48656c6c6f | xxd -r -p mencetak Hello, dan printf 'Hello' | xxd -p mencetak 48656c6c6f. Gunakan printf alih-alih echo saat meng-encode, karena echo menambahkan newline di akhir, 0a.
Convert.FromHexString() Encoding.UTF8.GetString(Convert.FromHexString(h)) men-decode dan Convert.ToHexString(Encoding.UTF8.GetBytes(s)) meng-encode (huruf besar, tanpa pemisah). FromHexString menolak spasi dan prefiks 0x. .NET Core dan .NET 5+ tidak menyertakan GBK: panggil dulu Encoding.RegisterProvider(CodePagesEncodingProvider.Instance), lalu Encoding.GetEncoding(936).
48 65 6C 6C 6F 2C 20 E4 B8 96 E7 95 8C
Hello, 世界
Tujuh byte pertama adalah ASCII biasa: 48 65 6C 6C 6F adalah Hello, 2C koma, dan 20 spasi. E4 B8 96 dan E7 95 8C adalah urutan UTF-8 tiga byte untuk 世 dan 界 — sebagian besar karakter Mandarin memakan tiga byte di UTF-8. Karena setiap urutannya valid, deteksi otomatis membacanya sebagai UTF-8.
CE C2 B6 C8 3A 32 35 2E 33 A1 E6
温度:25.3℃
Banyak perangkat serial mengirim teks Mandarin dalam GBK. Di sini CE C2 adalah 温 dan B6 C8 adalah 度, 3A 32 35 2E 33 adalah ASCII :25.3, dan A1 E6 adalah tanda ℃ lebar penuh — dua byte per karakter Mandarin atau simbol. Dibaca sebagai UTF-8, byte-byte ini tidak valid (CE membuka urutan dua byte, tetapi C2 bukan byte lanjutan), sedangkan dibaca sebagai GBK hasilnya karakter umum, jadi deteksi otomatis memilih GBK. Konverter yang hanya mengenal UTF-8 akan menampilkan karakter pengganti di sini.
00000000: 4869 20e4 bda0 e5a5 bd0d 0a Hi ........
Hi 你好␍␊
Ini persis yang dicetak printf 'Hi 你好\r\n' | xxd. Offset 00000000: dan kolom karakter di sebelah kanan dibuang sebelum decoding; kalau ikut dibaca sebagai data, delapan angka nol itu saja sudah menjadi empat byte NUL di awal. Dua byte terakhir, 0d 0a, adalah jeda baris Windows, ditampilkan sebagai ␍␊.
[-28, -72, -83, -26, -106, -121]
中文
Arrays.toString(bytes) mencetak byte bertanda (signed) Java dalam desimal. Nilai negatif adalah byte 0x80 ke atas: -28 adalah 256 − 28 = 228 = 0xE4. Enam byte E4 B8 AD E6 96 87 adalah encoding UTF-8 dari 中文.
AT+CSQ\r\n
41 54 2B 43 53 51 0D 0A
Modem dan sebagian besar set perintah UART mengharapkan setiap perintah diakhiri carriage return plus line feed. Kotak teks hanya menghasilkan 0A saat Anda menekan Enter, jadi centang Jeda baris sebagai CR LF dan akhir barisnya menjadi 0D 0A.
653462646130653561356264
e4bda0e5a5bd → 你好
Setiap byte di sini adalah digit hex dalam ASCII (65 adalah e, 34 adalah 4, 62 adalah b), sehingga decode pertama menghasilkan string hex lain. Ini terjadi ketika string hex diperlakukan sebagai teks lalu dikonversi lagi. Halaman ini menawarkan putaran kedua, yang menghasilkan 你好. Untuk menghindari alarm palsu, tawaran itu hanya muncul jika hasil pertama berisi setidaknya 12 digit hex dan hasil kedua ter-decode menjadi teks sungguhan — tanggal, timestamp, nilai CRC32, dan hash MD5 tidak memicunya.
Tempel ke kotak di tab Hex → Teks dalam bentuk apa pun yang Anda punya: berspasi, rapat, nilai 0x, escape \x, array byte, atau satu layar penuh xxd. Baris di bawah kotak menyebutkan input dibaca sebagai apa.
Teksnya muncul di sebelah kanan, beserta encoding hasil deteksi otomatis dan alasannya. Jika tebakannya salah, tabel di bawahnya menampilkan semua hasil baca; pilih yang benar dari menu Encoding.
Byte kontrol seperti NUL, CR, dan LF ditampilkan sebagai ␀ ␍ ␊. Hapus centang Tampilkan karakter tak terlihat untuk melihat teks polosnya, lalu salin hasilnya.
Di tab Teks → Hex, pilih encoding dan format output — hex berspasi, nilai 0x, array C, Java, Python, atau Go, atau dump xxd. Centang CR LF untuk protokol serial dan jaringan.
Teks Mandarin dari perangkat lunak Windows lama, banyak perangkat serial, dan database lawas memakai GBK. Men-decode-nya sebagai UTF-8 akan gagal atau memenuhi output dengan karakter pengganti. Lihat tabel encoding dan pakai hasil baca yang masuk akal.
>>> bytes.fromhex('c4e3bac3').decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc4 in position 0: invalid continuation byte >>> bytes.fromhex('c4e3bac3').decode('gbk')
'你好' charCodeAt() mengembalikan code unit UTF-16. Untuk ASCII nilainya kebetulan sama dengan byte-nya, jadi bug ini baru muncul pada karakter lain, ketika hasilnya bukan apa yang dikirim sistem UTF-8 mana pun.
'你'.charCodeAt(0).toString(16) // '4f60' — a UTF-16 code unit
Buffer.from('你', 'utf8').toString('hex') // 'e4bda0' — the UTF-8 bytes byte di Java bertanda (signed), jadi byte mulai 0x80 ke atas bernilai negatif. Integer.toHexString() bekerja pada int, mencetak nilai negatif sebagai hex unsigned 32-bit, dan membuang nol di depan.
Integer.toHexString(b) // "ffffffe4" for 0xE4, "a" for 0x0A
String.format("%02x", b) // "e4", "0a" Buffer.from(hex, 'hex') tidak pernah melempar error. Ia berhenti di pasangan pertama yang bukan hex valid dan mengabaikan digit ganjil di akhir, sehingga salah ketik menghasilkan buffer yang lebih pendek alih-alih error.
Buffer.from('486', 'hex') // <Buffer 48> — the 6 is silently dropped
Buffer.from('48zz65', 'hex') // <Buffer 48> — stops at zz if (!/^([0-9a-f]{2})*$/i.test(hex)) throw new Error('invalid hex');
Buffer.from(hex, 'hex'); Konverter yang hanya membuang spasi membaca offset 00000000: sebagai data dan kolom karakter sebagai hex tambahan jika memungkinkan. Hasilnya diawali byte NUL lalu makin melenceng. Gunakan xxd -p untuk hex polos, atau tempel dump-nya di sini, tempat kolom-kolomnya dikenali.
00000000: 4869 20e4 bda0 e5a5 bd0d 0a Hi ........ → read naively: 00 00 00 00 48 69 20 e4 …
$ printf 'Hi 你好\r\n' | xxd -p 486920e4bda0e5a5bd0d0a
Modem AT dan banyak protokol berbasis baris mengakhiri setiap perintah dengan carriage return plus line feed. Perintah yang hanya diakhiri 0A sering diabaikan tanpa error sama sekali.
41 54 2B 43 53 51 0A AT+CSQ followed by LF only
41 54 2B 43 53 51 0D 0A AT+CSQ followed by CR LF
0D 0A atau 00 di ujungnya — atau lakukan ke arah sebaliknya untuk menyusun perintah berakhiran CR LF yang akan diterima perangkat.b'...', dan Node.js sebagai <Buffer ...>. Tempel potongan log apa adanya untuk melihat teksnya, termasuk apakah aslinya UTF-8 atau GBK.00 sampai FF, dan jumlah byte selalu setengah dari jumlah digit. Huruf besar dan huruf kecil artinya sama. Pemisah, prefiks, dan sintaks array hanyalah notasi: 4865, 48 65, 0x48, 0x65, dan \x48\x65 adalah dua byte yang sama.00 sampai 7F. Karakter yang bisa dicetak berada dari 20 (spasi) sampai 7E (~); sisanya karakter kontrol, dan yang paling sering muncul di data nyata adalah 00 (NUL), 09 (tab), 0A (line feed), 0D (carriage return), dan 1B (escape). UTF-8, GBK, dan ISO-8859-1 semuanya mempertahankan nilai-nilai ini, itulah sebabnya teks bahasa Inggris biasa tetap utuh di hampir semua encoding yang salah.C2–DF untuk dua byte, E0–EF untuk tiga, F0–F4 untuk empat — dan setiap byte berikutnya harus berada di 80–BF. Struktur yang ketat inilah yang membuat kalimat GBK hampir tidak pernah menjadi UTF-8 yang valid — dalam uji kami terhadap 33.910 kalimat Mandarin, hanya 55 yang valid — dan menjadi alasan deteksi otomatis memercayai decode UTF-8 yang bersih. Satu karakter Mandarin tunggal lain ceritanya: sekitar 18% karakter GBK kebetulan membentuk urutan UTF-8 dua byte yang valid.81 sampai FE diikuti trail byte dari 40 sampai FE, kecuali 7F. Karena rentang trail byte begitu lebar, teks UTF-8 pendek yang dibaca sebagai GBK sering ter-decode tanpa error sama sekali menjadi karakter yang tidak berhubungan — E4 BD A0 E5 A5 BD (你好) menjadi 浣犲ソ — itulah sebabnya halaman ini mencoba UTF-8 lebih dulu. GB18030 memperluas GBK dengan urutan empat byte untuk karakter yang lebih langka; decoding di halaman ini menerimanya.41 00 — dan UTF-16BE menaruh byte tinggi lebih dulu — 00 41. API Windows dan banyak file memakai little-endian dan bisa diawali byte-order mark, FF FE; file UTF-8 kadang diawali EF BB BF. Deteksi otomatis membuang byte-order mark dan melaporkannya.getBytes(), encode(), setelan terminal serial, charset koneksi database — setel encoding secara eksplisit dan catat di samping hex-nya, supaya pihak lain tidak perlu menebak.charCodeAt() di JavaScript atau nilai char di Java, memberikan code unit UTF-16, bukan byte hasil encoding. Encode string-nya dulu dengan TextEncoder, Buffer.from(), atau getBytes(StandardCharsets.UTF_8), baru format byte-nya.%02x atau padanannya, jangan pernah memakai konversi angka-ke-hex polos. a dan 0a terlihat mirip di log, tetapi menyambung nilai tanpa padding menghasilkan string berpanjang ganjil, atau lebih buruk lagi, string yang ter-decode menjadi byte yang berbeda.00 sampai FF, jadi 48656c6c6f adalah lima byte 48, 65, 6C, 6C, 6F. Kedua, decode byte-byte itu dengan sebuah character encoding. Di ASCII dan UTF-8, 48 adalah H, 65 adalah e, 6C adalah l, dan 6F adalah o, sehingga hasilnya Hello. Di langkah kedua inilah hasil bisa berbeda: byte di atas 7F berarti karakter yang berbeda di UTF-8, GBK, dan encoding lain, itulah sebabnya halaman ini mendeteksi encoding dan menampilkan semua hasil baca secara berdampingan. C4 E3 BA C3 adalah 你好 dalam GBK tetapi bukan UTF-8 yang valid, sedangkan E4 BD A0 E5 A5 BD adalah 你好 dalam UTF-8 tetapi berubah menjadi 浣犲ソ saat dibaca sebagai GBK. Lihat tabel encoding di bawah hasil — baris yang terbaca sebagai teks yang masuk akal adalah encoding yang dipakai saat data ditulis. Dengan hanya satu atau dua karakter, deteksi otomatis tidak selalu bisa memastikan: D2 BB adalah UTF-8 yang valid (һ) sekaligus GBK (一), jadi periksa baris GBK yang ditampilkan halaman ini di bawah hasil. Dua penyebab lain juga perlu disingkirkan: digit hex yang berlebih atau hilang, yang menggeser setiap byte sesudahnya sebesar setengah byte, dan hex dump yang ditempel lengkap dengan kolom offset-nya. Jika yang Anda punya sudah berupa teks acak (seperti 浣犲ソ), bukan hex, tempel teks tersebut ke konverter encoding. E4 BD A0 E5 A5 BD untuk 你好 muncul sebagai 浣犲ソ. Atau teksnya mengandung byte kontrol seperti 00 atau 0D 0A yang muncul sebagai simbol kotak atau baris baru. Tempel hex-nya di sini: tabel encoding menampilkan pembacaan UTF-8 dan GBK berdampingan, dan byte kontrol ditampilkan sebagai ␀ ␍ ␊. 00 sampai 7F: huruf, angka, tanda baca, dan karakter kontrol. UTF-8 dirancang agar byte-byte yang sama itu berarti karakter yang persis sama, dan memakai urutan byte mulai 80 ke atas untuk semua karakter lainnya — 2 byte untuk huruf Latin beraksen, 3 untuk sebagian besar karakter Mandarin, Jepang, dan Korea, 4 untuk emoji. Jadi untuk teks bahasa Inggris biasa, hex ke ASCII dan hex ke UTF-8 memberikan hasil yang identik. Keduanya baru berbeda begitu ada byte bernilai 80 atau lebih: konverter yang hanya mengenal ASCII tidak bisa menampilkan byte tersebut sebagai karakter, sedangkan UTF-8 men-decode-nya ke seluruh rentang Unicode. Untuk arti setiap byte dari 00 sampai 7F, lihat tabel ASCII. E4 BD A0. Di GBK dan GB2312 memakan 2 byte: 你 adalah C4 E3. Di UTF-16, karakter dalam Basic Multilingual Plane memakan 2 byte, dan urutan byte-nya berpengaruh: 你 adalah 60 4F di UTF-16LE dan 4F 60 di UTF-16BE. Karakter langka di luar plane tersebut memakan 4 byte di UTF-8, 4 di UTF-16 (surrogate pair), dan 4 di GB18030. Ganti encoding di tab Teks → Hex untuk melihat jumlah byte teks Anda sendiri. bytes.fromhex() lalu decode: bytes.fromhex('48656c6c6f').decode('utf-8') mengembalikan 'Hello'. fromhex menerima spasi di antara byte, jadi bytes.fromhex('48 65 6c 6c 6f') juga berfungsi, tetapi menolak prefiks 0x dengan ValueError. Untuk data GBK, decode dengan 'gbk': bytes.fromhex('c4e3bac3').decode('gbk') mengembalikan '你好', sedangkan men-decode byte yang sama sebagai UTF-8 memunculkan UnicodeDecodeError. Kebalikannya adalah '你好'.encode('utf-8').hex(), yang mengembalikan 'e4bda0e5a5bd'; berikan pemisah seperti .hex(' ') untuk mendapatkan output yang dipisah spasi. Buffer.from('48656c6c6f', 'hex').toString('utf8') mengembalikan 'Hello'. Hati-hati dengan input yang rusak: Node tidak melempar error — ia berhenti di pasangan tidak valid pertama dan diam-diam membuang digit ganjil di akhir, jadi Buffer.from('486', 'hex') adalah buffer satu byte. Di browser, susun byte-nya sendiri lalu pakai TextDecoder, yang juga bisa membaca GBK: new TextDecoder('gbk').decode(Uint8Array.from('c4e3bac3'.match(/../g), h => parseInt(h, 16))) mengembalikan '你好'. Jangan pakai charCodeAt() untuk mengambil byte: '你'.charCodeAt(0).toString(16) adalah '4f60', sebuah code unit UTF-16, bukan byte UTF-8 e4bda0. unsigned char, lalu tutup dengan terminator: for (size_t i = 0; i < n; i++) sscanf(hex + 2 * i, "%2hhx", &buf[i]); buf[n] = '\0'; dengan n bernilai strlen(hex) / 2. Jika hex berisi 48656c6c6f2c20e4b896e7958c, mencetak buf di terminal UTF-8 menghasilkan Hello, 世界. Untuk arah sebaliknya, cetak setiap byte dengan printf("%02X ", (unsigned char)s[i]). Cast-nya penting: di platform yang char-nya bertanda (signed), byte seperti 0xE4 akan mengalami sign extension dan tercetak sebagai FFFFFFE4. Di C++, tambahkan setiap pasangan dengan s.push_back(static_cast<char>(std::stoi(hex.substr(i, 2), nullptr, 16))); hex yang sama menghasilkan Hello, 世界. new String(HexFormat.of().parseHex(hex), StandardCharsets.UTF_8); untuk data GBK, pakai Charset.forName("GBK") sebagai gantinya. Untuk arah sebaliknya, kejutan klasiknya adalah ffffffe4. Ini terjadi karena byte di Java bertanda (signed) dan Integer.toHexString() menerima int. Byte 0xE4 disimpan sebagai -28; memperlebarnya menjadi int tetap mempertahankan nilai -28, dan toHexString mencetak bilangan negatif sebagai nilai unsigned 32-bit, ffffffe4. Metode yang sama juga membuang nol di depan, jadi 0x0A keluar sebagai a. Gunakan String.format("%02x", b), yang memformat byte negatif sebagai nilai unsigned 8-bit-nya, atau Integer.toHexString(b & 0xff) dengan padding. Di Java 17 ke atas, HexFormat.of().formatHex(bytes) mengonversi seluruh array, dan HexFormat.of().parseHex(hex) melakukan kebalikannya. hex2bin() men-decode string hex menjadi string biner, dan bin2hex() melakukan kebalikannya: bin2hex('Hello') mengembalikan 48656c6c6f. Menurut manual PHP, hex2bin() mengembalikan false dan memunculkan E_WARNING jika panjang input ganjil atau bukan heksadesimal yang valid, jadi buang spasi dan prefiks 0x sebelum memanggilnya. String PHP adalah byte, jadi hasilnya memakai encoding apa pun yang dipakai teks aslinya — konversikan output GBK dengan mb_convert_encoding() jika halaman Anda memakai UTF-8. xxd (termasuk -u, -c, dan -g), hexdump -C, hex.Dump milik Go, od -A x -t x1, dan GNU od -t x1z, serta menjabarkan baris * yang dicetak hexdump dan od sebagai pengganti baris yang berulang. Halaman ini juga menangani hexdump polos dan od -x, yang mencetak word 16-bit alih-alih byte: di mesin little-endian, byte 48 69 dicetak sebagai 6948, jadi halaman ini menukar kembali setiap pasangan dan memakai offset terakhir untuk membuang byte padding yang ditambahkan pada data berpanjang ganjil. Setiap varian xxd, hexdump, dan od diuji terhadap 600 dump nyata dari data acak. a alih-alih 0a), karakter yang terpotong saat menyalin, atau huruf nyasar seperti O di tempat 0. String hex yang dihasilkan dengan mengonversi semua byte sebagai satu angka besar, seperti hex(int.from_bytes(data, 'big')) di Python, kehilangan nol di awal: \r\n keluar sebagai 0xd0a. Halaman ini tidak menebak digit mana yang hilang, karena tebakan yang salah menggeser setiap byte sesudahnya sebesar setengah byte dan menghasilkan omong kosong yang tampak meyakinkan. Sebagai gantinya, halaman ini menawarkan dua perbaikan sekali klik — tambahkan 0 di awal, atau hapus digit terakhir — sehingga Anda bisa membandingkan hasilnya. Nilai yang ditulis satu per satu dengan prefiks, seperti 0x0 0xa, tidak bermasalah: masing-masing dibaca sebagai satu byte utuh. Encoding & Pemformatan
Tabel ASCII lengkap: 128 karakter dalam desimal, heksadesimal, oktal, dan biner, plus konverter dua arah antara teks dan kode ASCII. Karakter kontrol disertai escape sequence, notasi caret, dan di mana Anda menemuinya.
Encoding & Pemformatan
Decode dan encode Base64 online gratis. Konversi real-time dengan dukungan UTF-8 dan emoji. 100% privat di browser Anda. Tanpa pendaftaran.
Encoding & Pemformatan
Decode string Base64 atau data URI kembali menjadi gambar di browser. Pratinjau, baca dimensi & MIME, lalu unduh sebagai PNG, JPG, GIF, SVG. Tanpa upload.
Encoding & Pemformatan
Konversi CSV ke JSON di browser. RFC 4180, infer tipe, baris header, aman big-int. 100% privat, tanpa unggah.
Encoding & Pemformatan
Tempel teks rusak dan dapatkan teks aslinya kembali. Setiap rantai encoding — UTF-8, GBK, Big5, Shift_JIS, EUC-KR, Windows-1252 — dicoba dan diperingkat, lengkap dengan rantainya. Gratis, privat, jalan di browser.
Encoding & Pemformatan
Tempel file .env, dapatkan JSON seketika. Password, kunci API, dan token tak pernah keluar dari browser — parser dotenv 100% privat, tanpa unggah, gratis.