Rumah pembangunan bahagian belakang masalah PHP Bagaimana untuk menukar pengekodan kod kacau php

Bagaimana untuk menukar pengekodan kod kacau php

Sep 14, 2021 am 09:46 AM
php Watak bercelaru

Cara menukar pengekodan kod kacau php: 1. Tambahkan baris "" pada halaman HTML 2. Tambah baris "header ("Kandungan -Jenis: text/html;charset=utf-8");". =utf-8'>

Bagaimana untuk menukar pengekodan kod kacau php

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

php kod bercelaru Bagaimana hendak menukar pengekodan?

Masalah kod PHP bercelaru, UTF-8 (kod bercelaru)

1 penukaran kepada masalah pengekodan UTF-8

1 Tambah baris selepas kepala dan sebelum tajuk:

<meta http-equiv=&#39;Content-Type&#39; content=&#39;text/html; charset=utf-8&#39; />
Salin selepas log masuk

Pesanan tidak boleh salah, pastikan anda memasukkannya ke dalam.

Tajuk yang dipaparkan mungkin bercelaru!

Masalah pengekodan fail 2.html:

Klik menu editor: "Fail" -> "Simpan Sebagai", anda boleh melihat pengekodan fail semasa, pastikan pengekodan fail adalah : UTF -8,

Jika ia ANSI, anda perlu menukar pengekodan kepada: UTF-8.

3. Pengepala fail HTML Masalah BOM:

Apabila menukar fail daripada pengekodan lain kepada pengekodan UTF-8, kadangkala teg BOM ditambahkan pada permulaan fail,

Tag BOM boleh menyebabkan penyemak imbas memaparkan aksara bercelaru apabila memaparkan aksara Cina.

Cara memadam teg BOM ini:

1 Anda boleh membuka fail dengan Dreamweaver dan menyimpannya semula untuk mengalih keluar teg BOM!

2. Anda boleh membuka fail dengan EditPlus dan dalam menu "Keutamaan"->"Fail"->"Tandatangan UTF-8", tetapkannya kepada: "Sentiasa alih keluar tandatangan",

Kemudian simpan fail dan anda boleh mengalih keluar tag BOM!

4. Masalah pengekodan UTF-8 pelayan WEB:

Jika anda mengikuti langkah-langkah yang disenaraikan di atas dan masih mengalami masalah bercelaru bahasa Cina,

Sila semak isu Pengekodan anda dengan WEB pelayan digunakan

Jika anda menggunakan Apache, sila tetapkan charset dalam fail konfigurasi kepada: utf-8 (hanya kaedah yang disenaraikan di sini, sila rujuk fail konfigurasi apache untuk format tertentu)

Jika anda menggunakan Nginx, sila tetapkan: charset dalam nginx.conf kepada utf-8

Khususnya cari "charset gb2312;" atau pernyataan yang serupa dan tukarkannya kepada: " charset utf-8; ".

2. Penukaran halaman PHP kepada masalah pengekodan UTF-8

1. Tambah baris pada permulaan kod:

header("Content-Type: text/html;charset=utf-8");
Salin selepas log masuk

2

Klik menu editor: "Fail"->"Simpan Sebagai", anda boleh melihat pengekodan fail semasa, pastikan pengekodan fail ialah: UTF-8,

Jika ia ANSI, anda perlu menukar pengekodan kepada: UTF-8.

3. Pengepala fail PHP Masalah BOM:

Fail PHP mesti tidak mempunyai teg BOM

Jika tidak, sesi tidak akan dapat digunakan dan akan terdapat gesaan yang serupa:

Amaran: session_start() [function.session-start]: Tidak boleh menghantar pengehad cache sesi - pengepala sudah dihantar

Ini kerana, apabila melaksanakan session_start(), seluruh halaman tidak boleh mempunyai Output , tetapi apabila teg BOM wujud dalam halaman PHP sebelumnya,

PHP menganggap teg BOM ini sebagai output, jadi ralat berlaku!

Jadi halaman PHP mesti memadamkan tag BOM

Cara untuk memadamkan tag BOM ini:

1 Anda boleh membuka fail dengan Dreamweaver dan simpan semula, iaitu, anda boleh mengalih keluar tag BOM!

2. Anda boleh membuka fail dengan EditPlus dan dalam menu "Keutamaan"->"Fail"->"Tandatangan UTF-8", tetapkannya kepada: "Sentiasa alih keluar tandatangan",

Kemudian simpan fail dan anda boleh mengalih keluar tag BOM!

4. Apabila PHP menyimpan fail sebagai lampiran, isu pengekodan UTF-8:

Apabila PHP menyimpan fail sebagai lampiran, nama fail mesti dikodkan GB2312,

jika tidak , jika terdapat bahasa Cina dalam nama fail, ia akan bercelaru:

Jika PHP anda sendiri ialah fail yang dikodkan UTF-8,

Anda perlu menukar pembolehubah nama fail daripada UTF-8 Ke GB2312:

iconv("UTF-8", "GB2312", "$filename");
Salin selepas log masuk

5 Apabila tajuk artikel dipenggal dan dipaparkan, aksara bercelaru atau "?"Secara amnya apabila tajuk artikel sangat panjang, sebahagian daripada. tajuk akan dipaparkan, yang akan Memotong tajuk artikel,

Memandangkan aksara Cina dalam format pengekodan UTF-8 akan menduduki 3 aksara lebar,

Apabila memotong tajuk, kadangkala hanya 1 daripada aksara Cina akan menjadi aksara terpotong atau 2 aksara lebar, jika

tidak dipintas sepenuhnya, aksara bercelaru atau tanda soal "?" , dan tidak akan ada masalah:

3 Masalah menggunakan pengekodan UTF-8 untuk pangkalan data MYSQL

function get_brief_str($str, $max_length) 
{ 
echo strlen($str) ."<br>"; 
if(strlen($str) > $max_length) 
{ 
$check_num = 0; 
for($i=0; $i < $max_length; $i++) 
{ 
if (ord($str[$i]) > 128) 
$check_num++; 
} 
if($check_num % 3 == 0) 
$str = substr($str, 0, $max_length)."..."; 
else if($check_num % 3 == 1) 
$str = substr($str, 0, $max_length + 2)."..."; 
else if($check_num % 3 == 2) 
$str = substr($str, 0, $max_length + 1)."..."; 
} 
return $str; 
}
Salin selepas log masuk

1 phpmyadmin untuk mencipta pangkalan data dan jadual data

Apabila mencipta pangkalan data, sila tetapkan "Organisasi" kepada: "utf8_general_ci"

atau laksanakan pernyataan:

Apabila mencipta jadual data: Jika medan menyimpan bahasa Cina, Anda perlu menetapkan "Organisasi" kepada: "utf8_general_ci",

Jika medan menyimpan bahasa Inggeris atau nombor, lalai adalah baik.
CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Salin selepas log masuk

Pernyataan SQL yang sepadan, contohnya:

2 Gunakan PHP untuk membaca dan menulis pangkalan data

Selepas menyambung ke pangkalan data:
CREATE TABLE `test` ( 
`id` INT NOT NULL , 
`name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , 
PRIMARY KEY ( `id` ) 
) ENGINE = MYISAM ;
Salin selepas log masuk

Sertai Dua baris:

mysql_query("set character set &#39;utf8&#39;");//读库
mysql_query("set names &#39;utf8&#39;");//写库
Salin selepas log masuk

就可以正常的读写MYSQL数据库了。

四.JS相关的UTF-8编码问题

1.JS读Cookie的中文乱码问题

PHP写cookie的时候需要将中文字符进行escape编码,

否则JS读到cookie中的中文字符将是乱码。

但php本身没有escape函数,我们新写一个escape函数:

function escape($str) 
{ 
preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r); 
$ar = $r[0]; 
foreach($ar as $k=>$v) 
{ 
if(ord($v[0]) < 128) 
$ar[$k] = rawurlencode($v); 
else 
$ar[$k] = "%u".bin2hex(iconv("UTF-8","UCS-2",$v)); 
} 
return join("",$ar); 
}
Salin selepas log masuk

JS读cookie的时候,用unescape解码,

然后就解决cookie中有中文乱码的问题了。

2.外部JS文件UTF-8编码问题

当一个HTML页面或则PHP页面包含一个外部的JS文件时,

如果HTML页面或则PHP页面是UTF-8编码格式的文件,

外部的JS文件同样要转成UTF-8的文件,

否则将出现,没有包含不成功,调用函数时没有反应的情况。

点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为:UTF-8,

如果是ANSI,需要将编码改成:UTF-8。

五.FLASH相关的UTF-8编码问题

FLASH内部对所有字符串,默认都是以UTF-8处理 

1.FLASH读文普通本文件(txt,html) 

要将文本文件的编码存为UTF-8 

点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为:UTF-8, 

如果是ANSI,需要将编码改成:UTF-8。 

2.FLASH读XML文件 

要将XML文件的编码存为UTF-8 

点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为:UTF-8, 

如果是ANSI,需要将编码改成:UTF-8。 

在XML第1行写: 

3.FLASH读PHP返回数据 

如果PHP编码本身是UTF-8的,直接echo就可以了 

如果PHP编码本身是GB2312的,可以将PHP转存成UTF-8编码格式的文件,直接echo就可以了

如果PHP编码本身是GB2312的,而且不允许改文件的编码格式, 

用下面的语句将字符串转换成UTF-8的编码格式 

$new_str = iconv("GB2312", "UTF-8", "$str"); 

再echo就可以了 

4.FLASH读数据库(MYSQL)的数据 

FLASH要通过PHP读取数据库中的数据 

PHP本身的编码不重要,关键是如果数据库的编码是GB2312的话, 

需要用下面的语句将字符串转换成UTF-8的编码格式 

$new_str = iconv("GB2312", "UTF-8", "$str"); 

5.FLASH通过PHP写数据 

一句话,FLASH传过来的字符串是UTF-8格式的, 

要转换成相应的编码格式,再操作(写文件、写数据库、直接显示等等) 

还是用iconv函数转换 

6.FLASH使用本地编码(理论上不推荐使用) 

如果想让FLASH不使用UTF-8编码,而是使用本地编码 

对于中国大陆地区而言,本地编码是GB2312或GBK 

AS程序内,可以添加以下代码: 

System.useCodepage = true; 

那么FLASH内所有字符都是使用GB2312的编码了 

所有导入到FLASH或者从FLASH导出的数据,都应该做相应的编码转换 

因为使用本地编码,会造成使用繁体中文地区的用户产生乱码,所以不推荐使用

推荐学习:《PHP视频教程

Atas ialah kandungan terperinci Bagaimana untuk menukar pengekodan kod kacau php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini 7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini Nov 13, 2024 am 09:42 AM

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Program PHP untuk mengira vokal dalam rentetan Program PHP untuk mengira vokal dalam rentetan Feb 07, 2025 pm 12:12 PM

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Terangkan pengikatan statik lewat dalam php (statik: :). Terangkan pengikatan statik lewat dalam php (statik: :). Apr 03, 2025 am 12:04 AM

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apr 03, 2025 am 12:03 AM

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.

See all articles