cari

Rumah  >  Soal Jawab  >  teks badan

Penggunaan mysqli set_charset() yang betul

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粉908643611P粉908643611350 hari yang lalu392

membalas semua(1)saya akan balas

  • P粉674999420

    P粉6749994202024-01-11 15:16:05

    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:

  • Batalbalas