Rumah  >  Artikel  >  pangkalan data  >  Mengapakah data yang dikodkan UTF-8 saya kelihatan sebagai omong kosong apabila menggunakan PDO dengan MySQL?

Mengapakah data yang dikodkan UTF-8 saya kelihatan sebagai omong kosong apabila menggunakan PDO dengan MySQL?

Barbara Streisand
Barbara Streisandasal
2024-11-04 13:17:011034semak imbas

Why does my UTF-8 encoded data appear as gibberish when using PDO with MySQL?

Isu Pengekodan PDO MySQL UTF-8

Masalah: Apabila menggunakan PDO dengan pangkalan data MySQL dalam PHP, UTF -8 data yang dikodkan yang dimasukkan ke dalam pangkalan data kelihatan sebagai omong kosong.

Punca Kemungkinan:

  • Pengendalian set aksara dan tetapan pengekodan yang salah semasa penubuhan sambungan pangkalan data.

Penyelesaian:

  • Pastikan set aksara dan konfigurasi pengekodan yang betul semasa pemulaan sambungan pangkalan data. Gunakan sintaks berikut:
<code class="php">$pdo = new PDO( 
    'mysql:host=hostname;dbname=defaultDbName', 
    'username', 
    'password', 
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8") 
); </code>

Barisan ini memaksa pengekodan UTF-8 pada sambungan PDO dan menyelesaikan isu pengekodan.

Amaran: Penyelesaian ini ditujukan untuk PHP versi 5.3.5 dan lebih awal. Untuk PHP versi 5.3.6 dan ke atas, rujuk kepada penyelesaian alternatif yang disediakan di tempat lain.

Atas ialah kandungan terperinci Mengapakah data yang dikodkan UTF-8 saya kelihatan sebagai omong kosong apabila menggunakan PDO dengan 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