Teks dan kode / Panduan

Quoted-printable atau Base64 untuk teks email: apa yang berubah?

Surel dapat mengodekan byte teks agar sesuai dengan aturan transportasi. Pengodean transfer dan charset mengatur dua lapisan berbeda.

Baca label MIME bersama

Header Content-Type pada badan pesan dapat menyatakan text/plain dengan charset seperti UTF-8. Content-Transfer-Encoding kemudian dapat mengatakan quoted-printable atau base64. Label pertama memberitahu pembaca bagaimana byte memetakan karakter; yang kedua memberitahu bagaimana byte tersebut diwakili selama transportasi. Tidak ada label sendiri yang sepenuhnya menggambarkan teks. Quoted-printable meninggalkan banyak karakter ASCII yang dapat dicetak yang dapat dibaca dan menulis beberapa byte lainnya sebagai tanda sama diikuti oleh dua digit heksadesimal. Base64 sebaliknya mengkode kelompok byte ke dalam alfabet yang dibatasi. Keduanya adalah representasi reversibel, bukan rahasia atau otentikasi.

Ikuti contoh singkat dengan aksen

Ambil pesan Café. Dalam UTF-8, é terakhir dikodekan oleh byte C3 A9. Representasi quoted-printable dari byte-byte tersebut termasuk =C3=A9, sehingga kalimat ASCII yang pendek dapat tetap dikenal secara visual. Alat tertanam menunjukkan jalur ini dengan "Kopi dan teh — siap". Sebuah Base64 rendering terlihat jauh lebih tidak seperti kalimat asli, meskipun dekoding byte-nya dengan UTF-8 merekonstruksi karakter yang sama. Bandingkan dua dengan dekoder yang sesuai dan periksa keluaran yang tepat daripada mengasumsikan setiap tanda sama berarti hal yang sama; Base64 juga dapat menggunakan tanda sama untuk padding. Contoh pada konverter tersemat: masukan Kopi dan teh — siap; hasil Kopi=20dan=20teh=20=E2=80=94=20siap.

Set karakter dan transfer encoding adalah lapisan terpisah.
  1. Teks Café → byte UTF-8 C3 A9 untuk é
  2. Quoted-printable menggunakan =C3=A9
  3. Base64 menggunakan representasi cetak yang berbeda

Balut baris adalah bagian dari konteks

MIME quoted-printable memiliki aturan untuk panjang baris, sambungan baris lunak dan space putih akhir literal. Tanda sama pada akhir sebuah baris terkode dapat memberi sinyal bahwa baris berikutnya melanjutkan data yang sama. Base64 MIME juga memiliki aturan panjang baris untuk badan pesan. Sebuah konverter teks browser kecil berguna untuk melihat representasi byte, tetapi pengirim email produksi harus menerapkan aturan MIME lengkap, menetapkan header yang koheren dan menghindari re-encoding yang tidak disengaja. Menyalin badan yang dikodekan transport langsung ke dalam halaman HTML akan menampilkan karakter encoding, bukan teks yang dimaksud. Dekode di batas penerimaan.

Ketika setiap representasi berguna

Quoted-printable seringkali cocok ketika badan pesan sebagian besar berupa teks ASCII dengan kadang-kadang non-ASCII byte, karena manusia masih dapat memeriksa bagian-bagian besar dari itu. Base64 dapat cocok data dengan banyak byte di luar ASCII yang dapat dicetak, meskipun outputnya lebih panjang dan tidak transparan untuk pembaca biasa. Konten dan protokol penerimaan memutuskan; jangan pilih enkoding transfer hanya karena satu sampel keluaran terlihat lebih pendek. Juga membedakan header surat dari tubuh: baris subjek yang dikodekan menggunakan sintaks header tambahan dan tidak dapat diperlakukan sebagai tubuh biasa yang dapat dicetak.

Mengatasi masalah lapisan dalam urutan

Jika sebuah email menampilkan "Caf=C3=A9", pertama-tama periksa apakah encoding transfer telah didekode. Jika menampilkan simbol pengganti setelah dekoding, periksa charset yang dinyatakan dan byte yang sebenarnya. Jika teks yang dikodekan dua kali muncul, identifikasikan sistem yang mengkodekannya dua kali daripada menjalankan dekoder secara buta sampai terlihat benar. Pertahankan satu contoh UTF-8 asli, label MIME dan kedua contoh terkode untuk tes yang dapat diulang. Alat MultiVerto menggambarkan transformasi pada teks yang dimasukkan; mereka tidak merakit atau memvalidasi pesan email lengkap.

Coba konverter

Encode frasa pendek dengan aksentasi sebagai quoted-printable.

Quoted-printable mewakili byte UTF-8 menggunakan ASCII yang dapat dicetak dan =HH heksadesimal escape seperti yang dijelaskan dalam RFC 2045. Konversi secara lokal di peramban Anda.

Buka konverter lengkap

Panduan lainnya

Panduan konversi

Jelajahi panduan