Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyelesaikan Isu Pengekodan UTF-8 dengan PDO dan MySQL?

Bagaimana untuk Menyelesaikan Isu Pengekodan UTF-8 dengan PDO dan MySQL?

Patricia Arquette
Lepaskan: 2024-11-03 10:29:30
asal
359 orang telah melayarinya

How to Solve UTF-8 Encoding Issues with PDO and MySQL?

Isu Pengekodan UTF-8 dengan PDO dan MySQL

Apabila menggunakan perpustakaan PHP Data Objects (PDO) dengan pangkalan data MySQL, anda boleh menghadapi masalah dengan pengekodan UTF-8. Data yang dimasukkan ke dalam pangkalan data dalam UTF-8 mungkin muncul sebagai aksara yang rosak, seperti "?????????".

Untuk menyelesaikannya, mengikut garis panduan dalam rangka kerja anda, laksanakan pertanyaan " SET NAMA utf8" dan "SET CHARACTER SET utf8" selepas mewujudkan sambungan PDO. Walau bagaimanapun, jika pertanyaan ini tidak membetulkan isu ini, pertimbangkan penyelesaian berikut:

Penyelesaian:

Tukar data kepada rentetan berkod JSON sebelum memasukkannya ke dalam pangkalan data menggunakan fungsi json_encode. Dapatkan semula data menggunakan json_decode selepas mengambilnya daripada pangkalan data. Pendekatan ini harus menyelesaikan isu pengekodan.

Pendekatan Dioptimumkan:

Untuk PHP versi 5.3.5 dan lebih awal, anda boleh menetapkan set aksara UTF-8 semasa pemulaan sambungan . Ini boleh dicapai dengan kod berikut:

$pdo = new PDO(
    'mysql:host=hostname;dbname=defaultDbName',
    'username',
    'password',
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
);
Salin selepas log masuk

Ini memastikan pengekodan UTF-8 dipaksa pada sambungan PDO, menyelesaikan isu pengekodan UTF-8 yang rosak.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Isu Pengekodan UTF-8 dengan PDO dan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan