Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa halaman web php bercelaru?

Mengapa halaman web php bercelaru?

青灯夜游
青灯夜游asal
2021-11-10 18:41:516055semak imbas

Sebab laman web php bercelaru: 1. Pengekodan halaman web (charset) tidak ditetapkan, menyebabkan penyemak imbas menghuraikannya dengan pengekodan yang salah 2. Fail php dibuka dan disimpan dengan salah pengekodan.

Mengapa halaman web php bercelaru?

Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3

PHP ialah sebenarnya ditulis Dalam kod, beberapa masalah sering berlaku, seperti halaman bercelaru dan masalah lain. Seterusnya, kami akan memperkenalkan secara terperinci punca halaman PHP bercelaru dan penyelesaian yang berkaitan.

Secara umumnya, terdapat dua sebab untuk kemunculan aksara bercelaru pada halaman PHP:

  • Disebabkan ralat tetapan pengekodan (charset) , menyebabkan penyemak imbas menjadi Pengekodan yang salah digunakan untuk menghuraikan, mengakibatkan skrin penuh dengan "buku syurga"

  • Fail dibuka dengan pengekodan yang salah dan kemudian disimpan , fail teks pada asalnya dikodkan dalam GB2312, tetapi Bukanya dalam pengekodan UTF-8 dan simpannya.

Untuk menyelesaikan masalah halaman PHP yang bercelaru di atas, anda perlu mengetahui aspek pembangunan mana yang melibatkan pengekodan:

  • Pengekodan pengisytiharan halaman: dalam kod HTML HEAD boleh digunakan untuk memberitahu pelayar tentang pengekodan yang digunakan oleh halaman web Pada masa ini, XXX terutamanya menggunakan GB2312 dan UTF-8 dalam pembangunan tapak web Cina.

  • Pengekodan sambungan pangkalan data: merujuk kepada pengekodan yang digunakan untuk menghantar data ke pangkalan data semasa menjalankan operasi pangkalan data Perlu diingatkan di sini bahawa ia tidak boleh dikelirukan dengan pengekodan pangkalan data Sebagai contoh, lalai dalaman MySQL ialah pengekodan latin1, iaitu, Mysql menyimpan data dalam pengekodan latin1, dan data yang dihantar ke Mysql dalam pengekodan lain akan ditukar kepada pengekodan latin1.

Sekarang kita tahu di mana pengekodan terlibat dalam pembangunan WEB, kita juga tahu sebab halaman PHP bercelaru: tetapan pengekodan di atas tidak konsisten, kerana kebanyakan pelbagai pengekodan adalah serasi dengan ASCII . , jadi simbol bahasa Inggeris tidak akan muncul, dan bahasa Cina akan kurang beruntung.

Berikut ialah beberapa situasi dan penyelesaian ralat biasa:

1 Pangkalan data menggunakan pengekodan UTF8 dan pengekodan pengisytiharan halaman ialah GB2312. Pada masa ini, jika anda MEMILIH data secara langsung dalam skrip PHP, halaman PHP akan kacau-bilau Anda perlu menggunakan:

mysql_query("SET NAMES GBK"); sebelum membuat pertanyaan untuk menetapkan pengekodan sambungan MYSQL untuk memastikan pengekodan pengisytiharan halaman. adalah konsisten dengan pengekodan sambungan yang ditetapkan di sini Konsisten (GBK ialah lanjutan daripada GB2312). Jika halaman tersebut dikodkan UTF-8, anda boleh menggunakan:

mysql_query("SET NAMES UTF8"); Ambil perhatian bahawa ia adalah UTF8 dan bukannya UTF-8 yang biasa digunakan. Jika pengekodan pengisytiharan halaman adalah konsisten dengan pengekodan dalaman pangkalan data, anda tidak perlu menetapkan pengekodan sambungan.

Nota: Sebenarnya, input dan output data MYSQL adalah lebih rumit daripada yang dinyatakan di atas Terdapat 2 pengekodan lalai yang ditakrifkan dalam fail konfigurasi MYSQL my.ini, iaitu default-character-set dalam [. klien] dan Set aksara lalai dalam [mysqld] digunakan untuk menetapkan pengekodan yang digunakan oleh sambungan klien lalai dan pangkalan data dalaman. Pengekodan yang kami nyatakan di atas sebenarnya ialah parameter baris arahan character_set_client apabila klien MYSQL bersambung ke pelayan, yang memberitahu pelayan MYSQL apakah pengekodan data klien yang diterima, bukannya menggunakan pengekodan lalai.

2. Pengekodan pengisytiharan halaman tidak konsisten dengan pengekodan fail itu sendiri. Ini jarang berlaku kerana jika pengekodan tidak konsisten, apa yang dilihat oleh artis dalam penyemak imbas semasa mencipta halaman akan menjadi aksara yang kacau. Lebih kerap daripada tidak, ia disebabkan oleh membetulkan beberapa pepijat kecil selepas dikeluarkan, membuka halaman dalam pengekodan yang salah dan kemudian menyimpannya. Atau anda menggunakan beberapa perisian FTP untuk mengubah suai terus fail dalam talian, seperti CuteFTP Disebabkan konfigurasi pengekodan perisian yang salah, pengekodan yang salah ditukar.

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Mengapa halaman web php bercelaru?. 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
Artikel sebelumnya:Apakah kegunaan const dalam phpArtikel seterusnya:Apakah kegunaan const dalam php