Ketika saya mencoba menyimpan file teks dengan teks non-Inggris di Notepad, saya mendapatkan opsi untuk memilih antara Unicode , Unicode Big Endian, dan UTF-8 . Apa perbedaan antara format ini?
Dengan asumsi saya tidak menginginkan kompatibilitas ke belakang (dengan versi OS atau aplikasi yang lebih lama) dan saya tidak peduli dengan ukuran file, format mana yang lebih baik?
(Asumsikan bahwa teks dapat dalam bahasa seperti Cina atau Jepang, selain bahasa lain.)
Catatan: Dari jawaban dan komentar di bawah ini, tampaknya di Notepad lingo, Unicode adalah UTF-16 (Little Endian), Unicode Big Endian adalah UTF-16 (Big Endian) dan UTF-8 adalah UTF-8 yang baik.
Jawaban:
Tidak tahu Mana yang lebih baik: gergaji atau palu? :-)
Unicode bukan UTF
Ada sedikit dalam artikel yang sedikit lebih relevan dengan subjek yang ada:
UTF-32 berfokus pada ketelitian dan representasi panjang tetap, menggunakan 4 byte untuk semua karakter. Ini adalah terjemahan yang paling mudah, memetakan langsung titik kode Unicode ke 4 byte. Jelas, ukurannya tidak terlalu efisien.
UTF-16 adalah kompromi, menggunakan 2 byte sebagian besar waktu, tetapi memperluas ke 2 * 2 byte per karakter untuk mewakili karakter tertentu, yang tidak termasuk dalam Basic Multilingual Plane (BMP).
Juga lihat Minimum Mutlak Setiap Pengembang Perangkat Lunak Sepenuhnya, Pasti Harus Tahu Tentang Unicode dan Karakter (Tidak Ada Alasan!)
sumber
Untuk bahasa Eropa, UTF-8 lebih kecil. Untuk bahasa-bahasa Oriental, perbedaannya tidak begitu jelas.
Keduanya akan menangani semua karakter Unicode yang mungkin, jadi itu seharusnya tidak membuat perbedaan dalam kompatibilitas.
sumber
Ada lebih banyak pengkodean karakter Unicode daripada yang Anda bayangkan.
UTF 8
Pengkodean UTF-8 adalah lebar variabel, mulai dari 1-4 byte, dengan bit atas setiap byte dicadangkan sebagai bit kontrol. Bit terkemuka dari byte pertama menunjukkan jumlah total byte yang digunakan untuk karakter itu. Nilai skalar dari titik kode karakter adalah gabungan dari bit-bit yang tidak terkontrol. Dalam tabel ini,
x
mewakili 8 bit terendah dari nilai Unicode,y
mewakili 8 bit lebih tinggi berikutnya, danz
mewakili bit lebih tinggi dari itu.sumber
"Unicode" adalah istilah lain untuk "UTF-16", yang merupakan pengkodean dari karakter Unicode yang diatur ke dalam enam belas-bit per karakter. UTF-8 mengkodekannya menjadi delapan bit per karakter.
Dalam kedua kasus, setiap luapan dialokasikan ke 16 atau delapan bit lainnya.
sumber
Satu-satunya keuntungan nyata dengan file kecil seperti file teks adalah ukuran file yang dihasilkan. UTF-8 umumnya menghasilkan file yang lebih kecil. Tetapi perbedaan ini mungkin kurang diucapkan dengan teks Cina / Jepang.
sumber
Singkatnya, Unicode adalah rangkaian karakter , sementara Unicode Big Endian dan utf-8 adalah dua penyandian , yang digunakan untuk menyimpan karakter sebagai 01 di komputer.
sumber