Penggunaan mysqli set_charset() yang betul
P粉908643611
P粉908643611 2024-01-10 16:58:50
0
1
387

Saya ada soalan tentang penggunaan yang betul $mysqli->set_charset()。我已经很多年没有在我的网站上使用此功能了。现在我正在重写我的连接脚本,并希望正确应用 $mysqli->set_charset() . Pada masa ini tapak masih berdasarkan "latin1" (tetapi saya akan beralih kepada UTF-8 (utf8mb4) tidak lama lagi.)

MySQLi pada pelayan saya (yang saya uruskan sendiri) telah menggunakan konfigurasi latin1 selama bertahun-tahun. Saya fikir tidak rugi untuk menambah ini sekarang $mysqli->set_charset("latin1")?

Jika MySQLi dikonfigurasikan sebagai utf8mb4 secara lalai, adakah akan terdapat aksara yang dikodkan aneh di tapak web saya tanpa fungsi $mysqli->set_charset()?

Saya ingin mengesahkan hipotesis saya.

P粉908643611
P粉908643611

membalas semua(1)
P粉674999420

mysqli::set_charset() Menetapkan charset sambungan , iaitu "semua rentetan yang saya hantar melalui sambungan ini akan dikodkan menggunakan ini > dan saya mahu pengekodan kembali". Anda perlu memadankan ini dengan pengekodan yang anda gunakan pada bahagian PHP.

Iaitu, walaupun tetapan semasa salah, jika anda menukar nilai semasa, ia boleh menyebabkan kerosakan data. Ini kerana dalam beberapa kes, data yang rosak semasa pemindahan daripada pangkalan data anda ke pangkalan data anda akan rosak dengan cara yang sama selagi tetapan itu konsisten.

Sebelum membuat sebarang perubahan, anda perlu menentukan pengekodan yang sedang digunakan dan sama ada data dalam pangkalan data rosak. Dari situ anda boleh mencarta laluan untuk memastikan semua pengekodan sepadan, data anda dikodkan dan diproses dengan betul pada semua langkah dan data sedia ada dibaiki.

Seperti biasa, sila lihat siaran utama: UTF-8 sepanjang一个>

Pemikiran Tambahan:

  • Pengekodan rentetan biasanya tidak dapat dikesan, ia adalah metadata yang mesti dijejaki secara berasingan.
  • Sebenarnya ISO-8859-1, tetapi awas ia adalah kembar jahat cp1252 yang melapisi julat bait 8X dan 9X dengan simbol tambahan, khususnya €. latin1Rujukan 李>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan