json_encode mengembalikan null bahkan dengan solusi SET NAMES utf8

Saya mendapatkan hasil nol setelah saya melakukan panggilan ajax, yang nilainya memiliki umlaut. Saya mencoba memperbaikinya dengan:

$this->pdo = new PDO('mysql:host=host;dbname=db','user','password',array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));

Hierarki panggilan adalah panggilan ajax menuju ke skrip php search.php yang telah menyimpan objek dbconnection dan di sinilah panggilan sql terjadi. Saya juga mencoba memperbaikinya dengan utf8_encode tetapi tidak berpengaruh. Basis datanya juga dalam rangkaian karakter: UTF-8 Unicode (utf8) dan versi phpnya adalah 5.4.

Di Apache lokal saya, saya tidak mendapatkan masalah apa pun. Masalahnya hanya muncul di halaman web sebenarnya.

Apa yang saya lewatkan?


person Kingalione    schedule 09.03.2014    source sumber


Jawaban (1)


Ubah umlaut menjadi entitas HTML dengan menggunakan htmlentities(), lalu json_encode().

person Jens A. Koch    schedule 09.03.2014
comment
tidak membantu saya. Saya menggunakan htmlentities($products); echo json_encode($produk); dan juga $products = htmlentities($products); tapi keduanya tidak berhasil - person Kingalione; 10.03.2014
comment
oke, lalu itu koneksi atau pengkodean database, yang bukan UTF-8. Periksa ini: stackoverflow.com/a/11413251/1163786 - person Jens A. Koch; 10.03.2014