mb_internal_encoding('UTF-8')
tidak melakukan apa pun dengan sendirinya, itu hanya menetapkan parameter penyandian default untuk setiapmb_
fungsi. Jika Anda tidak menggunakanmb_
fungsi, tidak ada bedanya. Jika ya, masuk akal untuk mengaturnya sehingga Anda tidak harus melewati$encoding
parameter setiap kali secara individual.- IMO
mb_detect_encoding
sebagian besar tidak berguna karena pada dasarnya tidak mungkin untuk secara akurat mendeteksi pengkodean teks yang tidak dikenal. Anda harus mengetahui pengkodean gumpalan teks karena Anda memiliki spesifikasi tentangnya, atau Anda perlu mengurai data meta yang sesuai seperti header atau tag meta tempat pengkodean ditentukan. - Menggunakan
mb_check_encoding
untuk memeriksa apakah gumpalan teks valid dalam penyandian yang Anda harapkan biasanya sudah cukup. Jika tidak, buang dan berikan kesalahan yang sesuai. -
Tentang:
Jika Anda memanipulasi string yang berisi karakter multibyte, maka ya, Anda perlu menggunakan
mb_
berfungsi untuk menghindari mendapatkan hasil yang salah. Fungsi string inti hanya berfungsi pada level byte, bukan level karakter, yang biasanya Anda inginkan saat bekerja dengan string. utf8_general_ci
vs.utf8_bin
hanya membuat perbedaan saat mengumpulkan , yaitu menyortir dan membandingkan string. Denganutf8_bin
data diperlakukan dalam bentuk biner, yaitu hanya data identik yang identik. Denganutf8_general_ci
beberapa logika diterapkan, mis. "é" mengurutkan bersama-sama dengan "e" dan huruf besar dianggap sama dengan huruf kecil.