Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Memperbaiki Pengekodan UTF-8 Patah dengan PDO dan MySQL?

Bagaimana untuk Memperbaiki Pengekodan UTF-8 Patah dengan PDO dan MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-11-03 19:23:29536semak imbas

How to Fix Broken UTF-8 Encoding with PDO and MySQL?

Membetulkan Pengekodan UTF-8 Rusak dengan PDO dan MySQL

Apabila menggunakan PDO dengan pangkalan data MySQL dalam PHP, memasukkan data yang dikodkan UTF-8 selalunya mengakibatkan aksara bercelaru atau tanda soal dalam pangkalan data. Ini boleh menjadi isu yang mengecewakan, terutamanya apabila berurusan dengan bahasa seperti bahasa Arab.

Untuk menyelesaikan isu ini, cuma tetapkan sambungan MySQL untuk menggunakan pengekodan UTF-8 dari awal. Begini cara anda boleh melakukannya:

Kod PHP:

<code class="php">$pdo = new PDO(
    'mysql:host=hostname;dbname=defaultDbName',
    'username',
    'password',
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
);</code>

Amaran: Penyelesaian ini hanya terpakai untuk PHP versi 5.3.5 dan di bawah. Untuk PHP versi 5.3.6 dan kemudian, rujuk jawapan alternatif yang disediakan pada urutan asal.

Dengan menetapkan arahan awal kepada "SET NAMA utf8", PDO menghantar pertanyaan ini secara automatik kepada pelayan selepas membuat sambungan, memastikan bahawa semua pertanyaan berikutnya menggunakan pengekodan UTF-8. Ini menghapuskan keperluan untuk pertanyaan SET NAMES atau SET CHARACTER SET tambahan selepas membuat sambungan.

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

Kenyataan:
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