@deceze dan @Shakti terima kasih atas bantuan Anda.
+1 untuk tautan artikel yang diposting oleh deceze (Menangani Unicode Depan ke Belakang di Aplikasi Web ) dan juga layak dibaca Memahami encoding
Setelah membaca komentar, jawaban, dan tentu saja kedua artikel tersebut, saya akhirnya menyelesaikan masalah saya.
Saya telah membuat daftar langkah-langkah yang saya lakukan sejauh ini untuk mengatasi masalah ini:
- Menambahkan
header('Content-Type: text/html; charset=utf-8');
di bagian atas file init.php saya, - Mengubah SET CHARACTER dari bidang tabel database saya yang menyimpan nilai tersebut ke UTF-8,
- Setel charset koneksi MySQL ke UTF-8
mysql_set_charset('utf8', $connection_link_id);
- Menggunakan fungsi htmlentities() untuk mengonversi karakter
$meta_title = htmlentities(trim($meta_title_raw), ENT_QUOTES, 'UTF-8');
Sekarang masalah ini tampaknya terpecahkan, TAPI saya masih harus melakukan hal berikut untuk menyelesaikan masalah ini secara LENGKAP.
- Dapatkan rangkaian karakter yang disandikan dari sumber
$source_charset
. - Ubah penyandian string menjadi UTF-8 jika sudah tidak dalam penyandian yang sama. Untuk ini satu-satunya fungsi PHP yang tersedia adalah
iconv()
. Contoh:iconv($source_charset, "UTF-8", $meta_title_raw);
Untuk mendapatkan $source_charset
Saya mungkin harus menggunakan beberapa trik atau pemeriksaan multi. Seperti memeriksa header dan meta tag dll. Saya menemukan jawaban yang bagus di Deteksi penyandian
Beri tahu saya jika ada peningkatan atau kesalahan pada langkah saya di atas.