Alat yang Anda butuhkan, siap dipakai

Konverter Teks ke Hex UTF-8

Masukkan teks di kolom teks, dan jalur di tengah menempelkan byte UTF-8 tiap karakter sambil menulis nilai seperti C3 A9 di kolom heksadesimal. Tempel nilai seperti \xC3, 0xC3, atau %C3 ke kolom heksadesimal untuk mengembalikannya menjadi teks. Jika byte rusak, konverter menunjukkan byte keberapa yang salah dan sebabnya, serta hasilnya jika dibaca sebagai Windows-1252.

Terakhir diperbarui 2026-10-21Semua perhitungan terjadi di browser Anda
Contoh

Jalur karakter dan byte

Byte UTF-8 setiap karakter. Pilih karakter dengan tombol panah

Format heksadesimal

Kaca pembesar bitTekan karakter di jalur atau geser kursor di kolom

Byte menurut enkodingJika teks yang sama disimpan dengan cara lain

    Susunan byte UTF-8

      Terakhir diperbarui 2026-10-21Masukan Anda tidak disimpan

      Standar ROBERINAlat yang Anda butuhkan,
      siap dipakai.
      • Jelas sekilasPosisi input dan hasil terlihat jelas.
      • Hasil lebih duluAngka utama tampil dulu; prosesnya hanya saat dibutuhkan.
      • Minta lebih sedikitTanpa pendaftaran atau data yang tidak perlu.

      é adalah C3 A9: berapa byte yang dipakai sebuah karakter di UTF-8

      Konversi heksadesimal UTF-8 mengubah karakter menjadi byte UTF-8 yang benar-benar disimpan komputer, lalu menulis tiap byte sebagai dua digit heksadesimal 00 sampai FF. Huruf é pada kata café punya titik kode (nomor karakter di Unicode) U+00E9 dan di UTF-8 menjadi dua byte, C3 A9. Huruf A hanya satu byte, 41, sedangkan emoji 😀 empat byte, F0 9F 98 80. Sebaliknya, jika Anda memasukkan C3 A9 yang Anda terima dari log atau program, hasilnya kembali menjadi é.

      Konverter di atas bisa diedit dari kolom teks maupun kolom heksadesimal. Sisi yang terakhir Anda ubah menjadi acuan, dan jalur di tengah menempelkan byte setiap karakter di bawah karakternya seperti teks terjemahan film. Warna di bawah kotak byte menunjukkan 1, 2, 3, atau 4 byte, dan jika Anda menekan sebuah karakter, kaca pembesar bit menggambar posisi bit titik kodenya di dalam byte UTF-8. Heksadesimal bisa ditulis dengan spasi, disambung, larik 0x, escape \x, atau percent-encoding, dan saat menempel, kelima bentuk itu semuanya dibaca.

      Saat Anda perlu melihat byte UTF-8 secara langsung

      • Teks tampil rusak seperti café atau “: Teks UTF-8 yang dibaca sebagai Windows-1252 menghasilkan pola khas, misalnya é menjadi é. Masukkan byte aslinya ke kolom heksadesimal, dan konverter menunjukkan apakah byte itu terbaca sebagai UTF-8 dan, jika tidak, apa isinya bila dibaca sebagai Windows-1252.
      • Log menampilkan nilai seperti caf\xc3\xa9: Python menulis byte non-ASCII dalam bentuk escape \x ketika menampilkan nilai bytes, misalnya b'caf\xc3\xa9'. Tempel nilai itu apa adanya ke kolom heksadesimal. Pembungkus b'…' dan huruf yang ditulis langsung seperti caf ikut dibaca, sehingga teks aslinya kembali.
      • Penyimpanan ke basis data gagal karena jumlah byte: utf8mb3 di MySQL (dulu bernama utf8) hanya memuat maksimal 3 byte per karakter, sehingga emoji 4 byte tidak bisa disimpan. Pesan galat 1366 menulis nilai bermasalahnya sebagai byte, seperti Incorrect string value: '\xF0\x9F\x98\x80'. Jika bagian ini dimasukkan ke konverter, langsung terlihat bahwa 😀 adalah satu karakter 4 byte.
      • Dua teks tampak sama, tetapi perbandingan atau pencarian meleset: Spasi tanpa pemisah baris (C2 A0), spasi tanpa lebar (E2 80 8B), dan BOM di awal berkas (EF BB BF) tidak terlihat di layar, tetapi byte-nya berbeda. Di jalur, semuanya diberi label seperti NBSP, ZWSP, dan BOM.
      • Nama berkas dengan aksen terpisah: Volume HFS Plus (Mac OS Extended) di Mac menyimpan nama berkas dalam varian NFD, yaitu huruf dasar dan tanda aksen terpisah. Karena itu café.txt dengan é yang terpisah (e + U+0301) berukuran 10 byte, bukan 9 byte. Konverter juga memberi tahu berapa byte hasilnya jika digabung ke NFC.
      • Membaca %C3%A9 di dalam alamat: Karakter non-ASCII di URL lebih dulu diubah ke UTF-8, lalu setiap byte ditulis sebagai % dan dua digit heksadesimal. Jika Anda menyalin %63%61%66%C3%A9 dari bilah alamat, hasilnya adalah café.
      • Memasukkan string ke dalam larik byte pada kode: Perangkat tertanam dan spesifikasi komunikasi sering membutuhkan larik seperti 0xC3, 0xA9. Pilih format larik 0x, dan hasilnya ditulis dalam bentuk yang siap ditempel.

      Cara memakai

      1. Ketik teks di kolom teks atau tempel byte di kolom heksadesimal. Tampilan awal sudah berisi contoh teks, emoji, dan café. Tombol 'Contoh' di atas bisa memasukkan karakter tersembunyi, aksen terpisah (NFD), byte \x dari log, dan byte rusak.
      2. Panah di tengah menunjukkan arah konversi. Mengubah kolom teks berarti ke bawah (enkode), dan mengubah kolom heksadesimal berarti ke atas (dekode).
      3. Pilih format heksadesimal dan huruf kapital atau kecil. Jika Anda mengganti format saat heksadesimal sudah terisi, byte yang sama ditulis ulang dalam format baru.
      4. Tekan sebuah karakter di jalur, atau geser kursor di kolom, dan kaca pembesar bit menampilkan titik kode, byte UTF-8, UTF-16, dan Windows-1252 karakter itu beserta posisi bytenya.
      5. Ambil hasilnya dengan 'Salin heksadesimal' atau 'Salin teks'. Di kanan bawah, jumlah byte teks yang sama jika disimpan sebagai UTF-16 dan Windows-1252 dibandingkan.

      Aturan UTF-8 membagi karakter menjadi byte

      UTF-8 menulis karakter pada rentang Unicode U+0000 sampai 10FFFF dengan 1 sampai 4 byte (RFC 3629). Bit-bit awal byte pertama menunjukkan panjang karakter, dan semua byte lanjutan diawali 10. Dengan begitu, satu byte saja sudah cukup untuk mengetahui apakah ia awal atau bagian tengah sebuah karakter.

      Bentuk byte UTF-8 menurut rentang titik kode (RFC 3629)
      Rentang titik kodeJumlah bytePola bitContoh
      U+0000 sampai 007F10xxxxxxxA → 41
      U+0080 sampai 07FF2110xxxxx 10xxxxxxé → C3 A9, © → C2 A9
      U+0800 sampai FFFF31110xxxx 10xxxxxx 10xxxxxx€ → E2 82 AC, 日 → E6 97 A5
      U+10000 sampai 10FFFF411110xxx 10xxxxxx 10xxxxxx 10xxxxxx😀 → F0 9F 98 80

      Mari membagi € sendiri. U+20AC dalam biner adalah 0010 0000 1010 1100, total 16 bit. Kerangka 3 byte punya tempat 4 + 6 + 6 bit, sehingga bitnya dibagi menjadi 0010 / 000010 / 101100 dan dimasukkan ke 11100010, 10000010, 10101100. Ketiga byte ini dalam heksadesimal adalah E2, 82, AC. U+0000 sampai 007F tetap satu byte, jadi teks yang hanya berisi huruf, angka, dan tanda baca dasar memiliki byte yang persis sama dengan ASCII.

      Karena itu, kata seperti 'selamat' memakai 7 byte di UTF-8, sedangkan satu huruf beraksen seperti é memakai 2 byte. Simbol seperti © (2 byte) dan € (3 byte) juga lebih panjang dari huruf biasa, dan emoji di luar BMP selalu 4 byte.

      Byte UTF-8, UTF-16, dan Windows-1252 per karakter

      Byte karakter yang sering diperiksa (UTF-16 berupa unit kode; Windows-1252 menurut tabel windows-1252 peramban)
      KarakterTitik kodeUTF-8UTF-16Windows-1252
      AU+004141004141
      éU+00E9C3 A900E9E9
      ©U+00A9C2 A900A9A9
      €U+20ACE2 82 AC20AC80
      – (tanda pisah en)U+2013E2 80 93201396
      “ (kutip buka)U+201CE2 80 9C201C93
      ” (kutip tutup)U+201DE2 80 9D201D94
      ΩU+03A9CE A903A9tidak ada
      日U+65E5E6 97 A565E5tidak ada
      😀U+1F600F0 9F 98 80D83D DE00tidak ada
      Spasi tanpa pemisah barisU+00A0C2 A000A0A0
      Spasi tanpa lebarU+200BE2 80 8B200Btidak ada
      Tanda aksen akut (gabung)U+0301CC 810301tidak ada
      BOMU+FEFFEF BB BFFEFFtidak ada
      ZWJ (penyambung)U+200DE2 80 8D200Dtidak ada

      Perhatikan €, –, “, dan ”: byte Windows-1252-nya adalah 80, 96, 93, dan 94, yaitu byte di rentang 80 sampai 9F. Di tabel windows-1252 yang dipakai peramban, rentang itu berisi tanda baca dan simbol seperti ini. Menurut WHATWG Encoding, label latin1 dan iso-8859-1 pun dipetakan ke windows-1252. Di UTF-8, byte tunggal 80 atau 96 tidak sah, sehingga teks Windows-1252 yang memuat tanda ini mudah terdeteksi saat dibaca sebagai UTF-8.

      Teks yang sama, jumlah byte berbeda menurut enkoding

      Jumlah karakter yang terlihat dan jumlah byte menurut enkoding (hitungan yang sama dengan batang di kanan bawah konverter)
      TeksKarakter terlihatTitik kodeUTF-8UTF-16Windows-1252
      Hello555105
      café44584
      © 2026 – €51111162211
      “halo”6610126
      café.txt889168
      café.txt (NFD)891018U+0301 tidak ada
      Halo 😀66914😀 tidak ada
      日本語3396tidak ada
      👨‍👩‍👧 (keluarga)151816tidak ada

      Windows-1252 selalu satu byte per karakter, tetapi hanya memuat karakter di tabelnya. Teks Latin dengan sedikit aksen dan simbol lebih pendek di sana, sementara 日 atau 😀 tidak bisa disimpan sama sekali. Karena web harus memuat banyak bahasa dan emoji, UTF-8 yang dipakai. Perhatikan juga dua baris café.txt: bentuk NFC (é satu titik kode) 8 karakter dan 9 byte di UTF-8, sedangkan bentuk NFD (e + U+0301) berukuran 10 byte dengan 9 titik kode, padahal tampilannya sama. Emoji keluarga tampak sebagai satu karakter, tetapi sebenarnya tiga emoji orang (4 byte × 3) yang disambung dua ZWJ (3 byte × 2), sehingga totalnya 18 byte.

      Lima cara menulis heksadesimal

      'café' (63 61 66 C3 A9) dalam setiap format
      FormatBentukBiasa dipakai di
      Dipisah spasi63 61 66 C3 A9Penampil heksadesimal, dokumen atau log yang menuliskan byte
      Disambung636166C3A9Hasil bytes.hex() di Python, nilai bersambung seperti hash atau kunci
      Larik 0x0x63, 0x61, 0x66, 0xC3, 0xA9Larik byte di C, Java, dan JavaScript
      Escape \x\x63\x61\x66\xC3\xA9Tampilan bytes di Python, string C, pesan galat MySQL
      Percent-encoding%63%61%66%C3%A9Alamat (URI)

      Saat menempel, Anda tidak perlu memilih format. Spasi, tab, baris baru, koma, titik dua, dan tanda hubung dibaca sebagai pemisah, sehingga 63-61-66-C3-A9 dari BitConverter.ToString di .NET juga langsung masuk. Pada format \x dan %, huruf dan angka yang ditulis apa adanya di antaranya ikut dibaca sebagai byte, dan pembungkus b'…', "…", serta […] dilepas. RFC 3986 menyarankan huruf kapital pada percent-encoding, tetapi huruf kapital dan kecil adalah byte yang sama.

      // JavaScript: teks → heksadesimal UTF-8
      [...new TextEncoder().encode('café')].map(b => b.toString(16).padStart(2, '0')).join(' ');  // '63 61 66 c3 a9'
      
      # Python 3.8 ke atas: teks ↔ heksadesimal
      'café'.encode('utf-8').hex(' ')                  # '63 61 66 c3 a9'
      bytes.fromhex('63 61 66 C3 A9').decode('utf-8')  # 'café' (spasi diabaikan)

      Byte yang tidak bisa dibaca sebagai UTF-8

      Tidak semua urutan byte adalah UTF-8. Byte lanjutan yang muncul tanpa byte awal, karakter yang terputus di tengah, atau karakter pendek yang sengaja ditulis panjang semuanya tidak sah. RFC 3629 melarang penulisan wilayah surogat (U+D800 sampai DFFF) di UTF-8 dan memperingatkan bahwa dekoder tidak boleh menerima bentuk panjang (overlong) seperti C0 80. Peramban memasukkan satu karakter pengganti � (U+FFFD) untuk setiap bagian yang tidak sah, dan konverter ini memotongnya dengan aturan yang sama, lalu menampilkan byte yang salah beserta alasannya di jalur.

      Contoh UTF-8 yang tidak sah dan karakter yang ditampilkan peramban
      ByteAlasanKarakter yang terlihat
      8010xxxxxx adalah byte lanjutan, tetapi tidak ada byte awal�
      FFF5 sampai FF tidak dipakai di UTF-8�
      C0 80U+0000 yang diperpanjang menjadi 2 byte (C0 dan C1 selalu terlarang)��
      E0 80 80Setelah E0 hanya A0 sampai BF yang boleh (bentuk panjang)���
      ED A0 80Wilayah surogat U+D800 (setelah ED hanya 80 sampai 9F)���
      F4 90 80 80Melewati U+10FFFF (setelah F4 hanya 80 sampai 8F)����
      E2 28 A1Karakter 3 byte terputus di byte kedua; 28 dibaca terpisah sebagai '('�(�
      E2 82Byte terakhir € hilang�

      Karakter yang terputus, seperti dua baris terakhir, diganti satu � untuk seluruh byte benar yang sudah masuk. Unicode menyebutnya penggantian 'maximal subpart', dan jika byte yang sama dimasukkan, jumlah � di peramban dan di konverter ini sama. Saat Anda masih mengetik di kolom heksadesimal, karakter terakhir yang belum lengkap tidak dianggap galat, melainkan konverter memberi tahu berapa byte yang masih kurang. Setelah Anda keluar dari kolom, barulah dinilai sebagai galat.

      Menebak enkoding asli dari teks yang rusak

      Penyebab teks rusak yang paling umum adalah byte yang disimpan dengan satu enkoding dibaca dengan enkoding lain. Pola rusaknya khas, sehingga dari bentuknya Anda bisa menebak arah salah baca.

      Teks asli → cara salah baca → tampilan (direproduksi dengan TextDecoder peramban)
      Byte asliSalah dibaca sebagaiTampilan
      UTF-8 'café' 63 61 66 C3 A9Windows-1252café
      UTF-8 '‘halo’' E2 80 98 68 61 6C 6F E2 80 99Windows-1252‘halo’
      UTF-8 '© 2026 – €5' C2 A9 20 32 30 32 36 20 E2 80 93 20 E2 82 AC 35Windows-1252© 2026 – €5
      Windows-1252 'café' 63 61 66 E9UTF-8caf�
      Windows-1252 '© 2026 – €5' A9 20 32 30 32 36 20 96 20 80 35UTF-8� 2026 � �5

      Jika huruf seperti Ã, Â, dan â muncul berpasangan dengan simbol aneh (é, “), kemungkinan besar teks UTF-8 dibaca sebagai Windows-1252: byte awal C3 dan E2 menjadi à dan â, dan byte lanjutan di belakangnya menjadi simbol aneh. Sebaliknya, jika teks Windows-1252 dibaca sebagai UTF-8, byte tunggal seperti E9 atau 96 berubah menjadi �. Masukkan byte aslinya ke kolom heksadesimal, dan konverter membacanya sebagai UTF-8 lebih dulu. Jika gagal, hasil pembacaan sebagai Windows-1252 ditampilkan di bawahnya. Tombol contoh 'Byte rusak' memperlihatkan bahwa A9 20 32 30 32 36 20 96 20 80 35 adalah '© 2026 – €5' dalam Windows-1252.

      Kesalahan yang sering terjadi

      • Mengira ini perhitungan mengubah angka ke heksadesimal: Jika 255 dimasukkan ke kolom teks, hasilnya bukan FF, melainkan byte 32 35 35 untuk karakter angka '2', '5', '5'. Untuk mengubah basis bilangan, gunakan konverter basis bilangan.
      • Mencampur titik kode dengan byte UTF-8: U+00E9 adalah nomor é, sedangkan C3 A9 adalah byte hasil menyimpan nomor itu dalam UTF-8. Jika U+00E9 atau é dimasukkan ke kolom heksadesimal, muncul keterangan bahwa itu bukan byte.
      • Menganggap konversi heksadesimal sebagai enkripsi: Heksadesimal hanyalah cara menulis byte, dan siapa pun bisa mengembalikannya ke teks asli. Jangan memakainya untuk menyembunyikan kata sandi atau data pribadi.
      • Ragu apakah EF BB BF di awal berkas harus dihapus: EF BB BF adalah BOM UTF-8 (U+FEFF), dan di awal berkas ia hanya berfungsi sebagai tanda pengenal 'berkas UTF-8'. Unicode FAQ menyarankan menghindari BOM pada protokol berbasis byte yang mengharapkan karakter ASCII di awal berkas, tetapi juga menjelaskan bahwa ada kasus yang memintanya, misalnya konvensi berkas .txt Microsoft. Periksa bagaimana penerima memperlakukan BOM, lalu putuskan untuk mempertahankan atau menghapusnya.
      • Mengharapkan baris baru Windows 0D 0A: Kolom isian di peramban menyimpan baris baru sebagai LF (0A). Baris baru yang Anda ketik di kolom teks menjadi 0A. Untuk memeriksa byte dengan CR (0D), masukkan 0D 0A di kolom heksadesimal.
      • Menyamakan jumlah karakter dengan jumlah byte: Di kolom yang batas panjangnya dihitung dalam byte, '© 2026 – €5' yang tampak 11 karakter dihitung 16 byte di UTF-8. Lihat ketiga angka 'karakter · titik kode · byte' di atas jalur.

      Batasan

      • Konversi hanya berjalan di dalam peramban. Teks dan byte yang dimasukkan tidak dikirim ke server dan tidak disimpan di alamat atau penyimpanan.
      • Teks dikonversi hingga 100.000 posisi UTF-16 sekali jalan, dan heksadesimal hingga 1.200.000 posisi termasuk pemisah. Jalur hanya menggambar 1.500 karakter atau byte galat pertama, dan sisanya hanya ikut dikonversi dan disalin.
      • Keluaran heksadesimal hanya berupa byte UTF-8. UTF-16 dan Windows-1252 hanya ditampilkan sebagai perbandingan jumlah byte dan nilai per karakter di kaca pembesar.
      • Nilai Windows-1252 mengikuti tabel WHATWG Encoding di peramban, sehingga sebagian karakter bisa berbeda dari tabel yang dipakai program lama.
      • Teks asli tidak dinormalisasi otomatis. Teks dengan aksen terpisah (NFD) hanya diberi pemberitahuan, dan baru diubah saat Anda menekan 'Gabung ke NFC'.
      • Berkas biner sembarang, seperti gambar atau arsip, tidak ditangani. Untuk mengubah berkas menjadi teks, gunakan alat Base64.
      • Saat membaca percent-encoding, tanda + tetap dibaca sebagai tanda plus (2B), bukan spasi. Untuk data formulir yang memakai + sebagai spasi, gunakan encoder/decoder URL.

      Sumber

      Acuan: aturan UTF-8 mengikuti RFC 3629 dan bab 3 Unicode 18.0 Core Specification; enkode, dekode, dan tabel windows-1252 peramban mengikuti WHATWG Encoding Standard; format lain dan pesan galat mengikuti dokumen masing-masing, dicek pada 21 Oktober 2026. Aturan byte UTF-8 tidak berubah sejak RFC 3629.

      Pertanyaan yang sering diajukan

      Berapa byte satu karakter di UTF-8?

      Huruf, angka, dan tanda baca ASCII satu byte, misalnya A adalah 41. Huruf beraksen seperti é dan simbol © dua byte (C3 A9 dan C2 A9), karakter seperti € dan – tiga byte (E2 82 AC dan E2 80 93), dan emoji seperti 😀 empat byte (F0 9F 98 80). Huruf é yang ditulis terpisah (e + U+0301, bentuk NFD) menjadi 1 + 2 = 3 byte.

      Bagaimana mengubah nilai seperti \xc3\xa9 atau %C3%A9 menjadi teks?

      Tempel saja ke kolom heksadesimal. Konverter membaca escape \x, percent-encoding, awalan 0x, serta pemisah spasi, koma, titik dua, dan tanda hubung. Pembungkus b'…' dan huruf yang ditulis apa adanya di antaranya ikut dibaca, lalu kolom teks menampilkan 'é'.

      Apakah huruf kapital dan kecil pada heksadesimal berbeda?

      Tidak. C3 dan c3 adalah byte yang sama (desimal 195). Keluaran bisa dipilih huruf kapital atau kecil, dan untuk percent-encoding di alamat, RFC 3986 menyarankan huruf kapital.

      Apa yang harus dilakukan jika muncul 'byte yang tidak bisa dibaca sebagai UTF-8'?

      Mungkin ada byte yang hilang di tengah, atau teks itu aslinya disimpan dengan enkoding lain. Konverter menunjukkan byte keberapa yang pertama salah beserta sebabnya, dan jika terbaca sebagai Windows-1252, hasilnya ditampilkan di bawah. Contohnya, A9 20 32 30 32 36 20 96 20 80 35 tidak sah sebagai UTF-8, tetapi di Windows-1252 isinya '© 2026 – €5'.

      Mengapa MySQL menampilkan galat Incorrect string value: '\xF0\x9F\x98\x80'?

      F0 9F 98 80 adalah empat byte UTF-8 untuk emoji 😀. utf8mb3 di MySQL (dulu bernama utf8) hanya memuat maksimal 3 byte per karakter, sehingga karakter 4 byte seperti ini tidak bisa disimpan. Untuk menyimpan emoji, ubah set karakter kolom ke utf8mb4 yang memakai maksimal 4 byte.

      Mengapa satu emoji menjadi 18 byte?

      Emoji keluarga seperti 👨‍👩‍👧 tampak sebagai satu karakter, tetapi sebenarnya tiga emoji orang (masing-masing 4 byte) yang disambung dua penyambung tanpa lebar ZWJ (masing-masing 3 byte). Karena itu jumlah titik kodenya 5 dan ukurannya di UTF-8 adalah 18 byte. Di jalur, ZWJ tampil sebagai label tersendiri.

      Apa itu EF BB BF?

      BOM UTF-8 (penanda urutan byte, U+FEFF). Ia berada di awal berkas sebagai tanda pengenal bahwa teksnya UTF-8 dan tidak terlihat di layar. Konverter tidak menghapus byte ini dan menampilkannya dengan label BOM di jalur. Mempertahankannya atau tidak bergantung pada cara program penerima memperlakukan BOM.

      Apakah memasukkan angka 255 menghasilkan FF?

      Tidak. Konverter ini tidak mengubah basis bilangan, melainkan mengubah karakter menjadi byte UTF-8. 255 adalah karakter angka '2', '5', '5', sehingga hasilnya 32 35 35. Untuk mengubah 255 menjadi FF, gunakan konverter basis bilangan.