Meskipun kedengarannya sangat aneh bahwa data mysql Anda dikeluarkan dengan benar di mana string php gagal pada penyandian, cara saya akan mencoba untuk memecahkan masalah Anda, akan memecah masalah menjadi langkah-langkah mencoba mengidentifikasi di mana kesalahan kode ini dihasilkan!
Pertama-tama, Anda harus mencoba mengatur default_charset
Anda ke utf-8
dalam file php.ini, yang dilakukan seperti ini :
default_charset = "utf-8";
Jika Anda tidak dapat melakukannya karena batasan penyedia, Anda mungkin masih dapat mengubah nilai saat runtime menggunakan fungsi ini_set fungsi!
Anda juga ingin memastikan bahwa server web diatur untuk mengeluarkan file yang disandikan utf-8 juga! Di Apache ini dapat dilakukan baik di httpd.conf atau menggunakan file htaccess :
AddDefaultCharset UTF-8
Pada titik ini jika semuanya gagal, masih... coba gunakan header php dan rangkaian karakter html relatif :
<?php header("content-type: text/html;charset=utf-8") ?>
<!doctype>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php echo "α β γ δ ε ϝ ϛ ζ η θ ι κ λ μ ν ξ ο π ϟ ϙ ρ σ τ υ φ χ ψ ω ϡ" ?>
</body>
</html>
Ini sangat penting meskipun, bahwa file Anda disimpan menggunakan pengkodean yang sesuai juga (utf-8 hampir selalu merupakan pilihan yang lebih baik, ini membantu untuk mencegah masalah cukup banyak). Jika Anda menyimpan file dengan penyandian yang berbeda dari utf-8, hancurkan file tersebut dan buat file baru dari konten lama. Terkadang editor tidak benar-benar dapat mengganti penyandian dengan benar setelah file dibuat, meskipun notepad++ umumnya bekerja dengan baik untuk itu; cukup gunakan converto to
bukan encode in
fitur!
Jika masih tidak berfungsi, meskipun saya harap sekarang, Anda dapat memeriksa beberapa alternatif php lain seperti mb_detect_encoding , mb_convert_encoding , htmlentitas dan htmlspecialchars untuk memperbaiki masalah!