Tim pengembang mengusulkan untuk beralih ke UTF-8

Baru-baru ini, sebuah manifesto programmer dari Tel Aviv diterbitkan di Hacker News. Mereka menyarankan menjadikan UTF-8 solusi default untuk menyimpan string teks dalam memori dan komunikasi.

Materi tersebut menghasilkan diskusi aktif, dan kami memutuskan untuk memahami situasinya, mempertimbangkan argumen para pakar TI - termasuk insinyur IBM dan spesialis konsorsium W3C.


Foto - Raphael Schaller - Unsplash

Situasi Pengkodean


Pada tahun 1988, Joe Becker memperkenalkan rancangan pertama standar Unicode. Dokumen tersebut didasarkan pada asumsi bahwa 16 bit akan cukup untuk menyimpan karakter apa pun. Namun, dengan cepat menjadi jelas bahwa ini tidak cukup. Oleh karena itu, opsi pengkodean baru telah muncul - termasuk UTF-8 dan UTF-16. Tetapi berbagai format dan kurangnya rekomendasi yang ketat tentang penggunaannya menyebabkan kebingungan di industri TI (termasuk terminologi).

Format internal Windows adalah UTF-16 . Pada saat yang sama, penulis manifesto, yang dibahas di Hacker News, mengatakan bahwa pada suatu waktu Microsoft menggunakan istilah Unicode dan widechar sebagai sinonim untuk UTF-16 dan UCS-2 (yang dianggappendahulu asli UTF-16). Sedangkan untuk ekosistem Linux, sudah biasa menggunakan UTF-8 di dalamnya. Variasi pengkodean terkadang mengarah pada fakta bahwa file rusak selama transfer antara komputer dengan sistem operasi yang berbeda.

Standarisasi industri dapat menjadi solusi - transisi ke UTF-8 untuk menyimpan string teks dalam memori atau disk dan bertukar paket melalui jaringan.

Mengapa UTF-8 dianggap lebih baik daripada UTF-16


Salah satu argumen utama adalah bahwa UTF-8 mengurangi jumlah memori yang ditempati oleh karakter dalam alfabet Latin (mereka digunakan oleh banyak bahasa pemrograman). Huruf latin, angka, dan tanda baca umum dikodekan dalam UTF-8 hanya dengan satu byte. Selain itu, kode mereka sesuai dengan kode dalam ASCII, yang memberikan kompatibilitas ke belakang.

Juga, para ahli IBM mengatakan bahwa UTF-8 lebih baik untuk berinteraksi dengan sistem yang tidak mengharapkan data multibyte datang. Pengkodean Unicode lainnya mengandung banyak byte nol. Utilitas dapat menemukannya di akhir file. Misalnya, dalam UTF-16, karakter A terlihat seperti ini: 00000000 01000001. Dalam garis C, urutan ini dapat dipangkas. Dalam kasus UTF-8, nol hanya NUL. Dalam pengkodean ini, huruf pertama dari alfabet Latin direpresentasikan sebagai 01000001 - tidak ada masalah dengan jeda yang tidak terduga.

Untuk alasan yang sama, insinyur di konsorsium W3C merekomendasikan menggunakan UTF-8 ketika mengembangkan antarmuka front-end. Jadi Anda dapat menghindari kesulitan dengan pengoperasian perangkat jaringan.


Foto - Kristian Strand - Tercatat Resplash

Resident Hacker News mencatatbahwa UTF-8 memungkinkan Anda untuk menangkap kesalahan pengkodean pada tahap awal. Di dalamnya, byte dibaca secara berurutan, dan bit overhead menentukan jumlahnya. Dengan demikian, nilai titik kode dihitung secara jelas dan pengembang aplikasi tidak perlu memikirkan masalah Little-Endian atau Big-Endian .

Di mana UTF-16 memiliki keunggulan


Huruf dan tanda baca Latin dapat menggunakan lebih sedikit memori dalam UTF-8 (dibandingkan dengan UTF-16). Beberapa titik kode memerlukan jumlah byte yang sama di kedua penyandian - misalnya, fakta ini berlaku untuk bahasa Yunani dan Ibrani.

Situasinya berbeda dengan karakter Asia - dalam kasus UTF-8, mereka membutuhkan lebih banyak ruang . Misalnya, karakter Cina akan diwakili oleh tiga byte: 11101000 10101010 10011110 . Karakter yang sama di UTF-16 akan terlihat seperti 10001010 10011110 .

Apa hasilnya


Debat tentang masalah mengenalkan satu pengkodean telah berlangsung sejak lama. Pertanyaan ini diajukan hampir sebelas tahun yang lalu di utas tentang Stack Overflow. Pavel Radzivilovsky (Pavel Radzivilovsky) - salah satu penulis manifesto tersebut mengambil bagian di dalamnya. Sejak itu, UTF-8 telah menjadi salah satu pengkodean paling populer di Internet. Dan itu diakui sebagai wajib untuk "semua situasi" di WHATWG, komunitas spesialis HTML dan API yang mengembangkan standar yang relevan.

Baru-baru ini, Microsoft juga mulai merekomendasikan penggunaan UTF-8 dalam mengembangkan aplikasi web. Mungkin di masa depan praktik ini akan meluas ke utilitas lain.



:

« www»: -
« IaaS»: 1cloud
: AdTech- GDPR?
10- —
,


All Articles