" ; 3. Melalui "mysql_query ("SET NAMA GBK");" untuk menetapkan pengekodan sambungan MYSQL."/> " ; 3. Melalui "mysql_query ("SET NAMA GBK");" untuk menetapkan pengekodan sambungan MYSQL.">
Rumah > Artikel > pembangunan bahagian belakang > Apa yang perlu dilakukan jika halaman web dw php mempunyai aksara Cina yang kacau?
Penyelesaian kepada kod kacau Cina dalam halaman web dw php: 1. Tetapkan pengekodan tajuk kepada UTF8 2. Apabila menggunakan Dreamweaver untuk mencipta fail php baharu, isytiharkan format utf melalui "8aee6a683c29dc930112d40f2da5f5e2" -8; 3. Tetapkan pengekodan sambungan MYSQL melalui "mysql_query("SET NAMA GBK");".
="utf-8">
Persekitaran pengendalian tutorial ini: sistem Windows 7, Dreamweaver versi 8, komputer Dell G3.
Apakah yang perlu saya lakukan jika halaman web dw php mempunyai aksara Cina yang kacau-bilau?
Bagaimana untuk menyelesaikan masalah aksara Cina yang kacau-bilau dalam antara muka pratonton Dreamweaver semasa menjalankan PHP fail
Melakukan pembangunan laman web memerlukan menangani masalah yang berbeza di banyak negara Bagi bahasa, kami sering menghadapi campuran bahasa Cina dan Inggeris. Apabila menggunakan Dreamweaver untuk mencipta dan menjalankan kod PHP, tetingkap pratonton Cina kadangkala memaparkan aksara bercelaru, tetapi bahasa Inggeris boleh dipaparkan secara normal.
Ini berlaku Sebab-sebab utama ialah:
1. Pengekodan fail: merujuk kepada pengekodan di mana fail halaman (.html, .php, dll.) itu sendiri disimpan. Notepad dan Dreamweaver akan mengenali pengekodan fail secara automatik apabila membuka halaman, jadi masalah akan berkurangan. Walau bagaimanapun, ZendStudio tidak mengecam pengekodan secara automatik Ia hanya akan membuka fail dengan pengekodan tertentu Jika anda secara tidak sengaja membuka fail dengan pengekodan yang salah semasa bekerja, aksara bercelaru akan muncul sebaik sahaja anda menyimpannya selepas membuat pengubahsuaian.
Penyelesaian: Tetapan halaman, tajuk/pengekodan, ditetapkan kepada UTF8
2. Pengekodan Pengisytiharan Halaman :
Tetapan pengekodan halaman HTML
Dalam kod HTML HEAD, ia boleh digunakan untuk memberitahu penyemak imbas pengekodan halaman web yang digunakan pada masa ini, XXX terutamanya menggunakan GB2312 dan UTF dalam pembangunan tapak web Cina -8 Dua pengekodan. Apabila menggunakan Dreamweaver untuk mencipta fail php baharu, anda perlu mengisytiharkan format utf-8: 2458c20ad8814e8d5c01cce841c2226d
2458c20ad8814e8d5c01cce841c2226d
3. Pengekodan sambungan pangkalan data: merujuk kepada pengekodan yang digunakan untuk menghantar data ke pangkalan data semasa menjalankan operasi pangkalan data yang perlu diperhatikan di sini adalah untuk tidak menghubungi pangkalan data itu sendiri kekeliruan pengekodan, contohnya, lalai dalaman MySQL adalah pengekodan latin1, yang bermaksud bahawa Mysql menyimpan data dalam pengekodan latin1, dan data yang dihantar ke Mysql dalam pengekodan lain akan ditukar kepada pengekodan latin1.
Mengetahui di mana pengekodan terlibat dalam pembangunan WEB, anda juga mengetahui sebab kod bercelaru: tiga tetapan pengekodan di atas tidak konsisten Memandangkan kebanyakan pelbagai pengekodan serasi dengan ASCII, simbol Bahasa Inggeris tidak akan muncul , dan aksara Cina kelihatan bercelaru.
Ralat dan penyelesaian biasa:
1. Pangkalan data menggunakan pengekodan UTF8 dan pengekodan pengisytiharan halaman ialah GB2312.
Pada masa ini, data SELECT secara langsung dalam skrip PHP anda perlu menggunakannya sebelum membuat pertanyaan: mysql_query("SET NAMA GBK"); untuk menetapkan pengekodan sambungan MYSQL untuk memastikan halaman tersebut pengekodan pengisytiharan adalah konsisten dengan tetapan di sini Pengekodan sambungan yang ditentukan adalah konsisten (GBK ialah lanjutan daripada GB2312). Jika halaman dikodkan UTF-8, anda boleh menggunakan: mysql_query("SET NAMES UTF8");
Tetapan pengekodan PHP
Tulis ayat pertama dalam kod php:
<?php header("Content-type:text/html;charset=utf-8"); ?>
Ubah suai fail php.ini
Ubah suai "/etc/php5/apache2/php.ini" dan tukar
default_charset = "iso-8859-1"
kepada default_charset = "utf - 8"
Tetapan pengekodan Mysql
<?php mysql_query('SET NAMES UTF8'); ?>
Perhatikan 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.
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, yang ditetapkan dengan aksara lalai dalam [klien] dan [mysqld] . Set aksara lalai digunakan untuk menetapkan pengekodan yang digunakan oleh sambungan klien dan pangkalan data secara dalaman secara lalai. 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.
Berdasarkan langkah sebelumnya, anda juga perlu menambah pengekodan pangkalan data sebelum membuat pertanyaan/mengubah suai/menambah data anda.
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.
3. Apabila menyewa hos maya, jika ketiga-tiga pengekodan di atas ditetapkan dengan betul, kadangkala masih terdapat aksara yang bercelaru. Sebagai contoh, jika halaman web dikodkan dalam GB2312, ia sentiasa dikenali sebagai UTF-8 apabila dibuka oleh penyemak imbas seperti IE , halaman dipaparkan seperti biasa. Sebabnya ialah pelayan Apache menetapkan pengekodan lalai global pelayan dan menambah AddDefaultCharset UTF-8 dalam httpd.conf. Pada masa ini, pelayan akan mula-mula menghantar pengepala HTTP ke penyemak imbas, dan keutamaannya lebih tinggi daripada pengekodan yang diisytiharkan dalam halaman Sememangnya, penyemak imbas akan mengecamnya secara salah. Terdapat dua penyelesaian. Pentadbir harus menambah AddDefaultCharset GB2312 pada fail konfigurasi mesin maya mereka sendiri untuk mengatasi konfigurasi global atau mengkonfigurasinya dalam .htaccess dalam direktori mereka sendiri.
Ringkasan: Untuk menyelesaikan kod PHP Cina yang kacau, penyelesaian terpantas ialah membuat pengekodan diisytiharkan pada halaman selaras dengan pengekodan dalaman pangkalan data Jika nombor halaman yang digunakan untuk halaman itu tidak konsisten dengan pengekodan dalaman daripada pangkalan data, tetapkan pengekodan sambungan, mysql_query ("SET NAMA XXX "); Seperti mysql_query('SET NAMA UTF8'); [2]
Akhirnya, bahasa Cina berjaya dipaparkan:
76c82f278ac045591c9159d381de2c57
f2fff6a208c3e290698f287c1c0e7a53
93f0f5c25f18dab9d176bd4f6de5d30e
a80eb7cbb6fff8b0ff70bae37074b813
b2386ffb911b14667cb8f0f91ea547a7中文6e916e0f7d1e588d4f442bf645aedb2f
9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d
4a249f0d628e2318394fd9b75b4636b1中文473f0a7621bec819994bb5020d29372a
13f8ba25135b9b670f5fc69a5ab97123
Pembelajaran yang disyorkan: "Tutorial Video PHP"
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika halaman web dw php mempunyai aksara Cina yang kacau?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!