Cara sederhana untuk membedakan UTF-8 dan UTF-16 adalah dengan mengidentifikasi kesamaan di antara keduanya.
Selain berbagi nomor unicode yang sama untuk karakter tertentu, masing-masing memiliki formatnya sendiri.
UTF-8 mencoba untuk menyatakan, setiap nomor unicode diberikan kepada karakter dengan satu byte (Jika itu adalah ASCII), selain itu 2 dua byte, selain itu 4 byte dan seterusnya ...
UTF-16 mencoba untuk menyatakan, setiap nomor unicode diberikan kepada karakter dengan dua byte sebagai permulaan. Jika dua byte tidak cukup, maka gunakan 4 byte. JIKA itu juga tidak cukup, maka gunakan 6 byte.
Secara teoritis, UTF-16 lebih hemat ruang, tetapi dalam praktiknya UTF-8 lebih hemat ruang karena sebagian besar karakter (98% data) untuk diproses adalah ASCII dan UTF-8 mencoba merepresentasikannya dengan byte tunggal dan UTF-16 cobalah untuk merepresentasikannya dengan 2 byte.
Selain itu, UTF-8 adalah superset dari pengkodean ASCII. Jadi setiap aplikasi yang mengharapkan data ASCII juga akan diterima oleh prosesor UTF-8. Ini tidak benar untuk UTF-16. UTF-16 tidak dapat memahami ASCII, dan ini merupakan rintangan besar bagi adopsi UTF-16.
Hal lain yang perlu diperhatikan adalah, semua UNICODE saat ini dapat dimuat dalam maksimum 4 byte UTF-8 (Mengingat semua bahasa di dunia). Ini sama dengan UTF-16 dan tidak ada penghematan nyata dalam ruang dibandingkan dengan UTF-8 ( https://stackoverflow.com/a/8505038/3343801 )
Jadi, orang menggunakan UTF-8 jika memungkinkan.