Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menyelesaikan masalah parameter Cina yang kacau dalam URL dalam PHP
kaedah php untuk menyelesaikan masalah parameter Cina bercelaru dalam URL: 1. Gunakan fungsi urlencode dan urldecode untuk transcode; 2. Gunakan "iconv("gb2312","UTF-8",$gonghui);" kaedah Transcoding.
Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer Dell G3.
Bagaimanakah PHP menyelesaikan masalah parameter Cina bercelaru dalam url?
Himpunan penyelesaian kepada aksara Cina yang kacau-bilau yang dihantar dalam bar alamat url php
$_GET Cina dalam bar alamat php bercelaru dan penggunaan urlencode dan urldecode diterangkan secara terperinci
Pengekodan URL
sintaks: string urlencode(string str
nilai pulangan: string
jenis fungsi: pemprosesan pengekodan
Contohnya:
Kodnya adalah seperti berikut:
<?php $ChineseName="我的名字,是中文的哦"; $EncodeStr=urlencode($ChineseName); echo "<a href=/cgi/personal.cgi?name=$EncodeStr>我的名字</a>"; ?>
penyahkodan url
Pulihkan rentetan yang dikodkan URL.
Sintaks: string urldecode(string str);
Nilai pulangan: String
Jenis fungsi: Pemprosesan pengekodan
Contohnya:
Proses dan paparkan teks Cina yang diluluskan sebelum ini
Kodnya adalah seperti berikut:
<?php $DecodeStr=urldecode($_GET['name']);//你可能不用解码都可以,因为浏览器会自动帮你解码 echo $DecodeStr; ?>
Mengenai masalah aksara Cina bercelaru yang diperolehi daripada url menggunakan kaedah get dalam PHP
Gunakan $gonghui = iconv("gb2312" ,"UTF-8",$gonghui); Kod kaedah lain
/** * 多字节字符串编码转换函数 * * @param string str 需要进行编码转换的字符串 * @param string to_encoding 指定转换为某种编码,如:gb2312、gbk、utf-8等 * @param mixed from_encoding 混合指定原来字串的编码,如:同时指定 JIS, eucjp-win, sjis-win 混合编码 * @return string string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] ) **/
fungsi mb_convert_encoding ialah fungsi penukaran pengekodan rentetan berbilang bait PHP, yang boleh digunakan dalam hampir semua keadaan di mana ia perlu Semua pengekodan disokong. PHP >= 4.0.6, 5 versi disokong.
Dapatkan reg.php?gh=XX terus;
//工会登入参 $gonghui = $_GET['gh'];
$gonghui yang diperolehi adalah gb2312 dikodkan dan dikeluarkan ke halaman web utf-8, yang memaparkan aksara bercelaru
Tukar kepada
//工会登入参数 $gonghui = $_GET['gh']; $gonghui = mb_convert_encoding($gonghui, "UTF-8", "gb2312");
dan ia akan dipaparkan seperti biasa
Tukar keseluruhan halaman
Kaedah ini boleh digunakan untuk semua persekitaran pengekodan. Dengan cara ini, set aksara selain daripada 128 aksara pertama (aksara paparan) diwakili oleh NCR (Rujukan aksara angka, seperti "aksara Cina" akan ditukar kepada bentuk "汉字"). Pengekodan ini ialah Halaman boleh dipaparkan seperti biasa dalam mana-mana persekitaran pengekodan.
Tambahkan tiga baris kod berikut pada kepala fail php:
Kod adalah seperti berikut:
mb_internal_encoding("gb2312"); // 这里的gb2312是你网站原来的编码 mb_http_output("HTML-ENTITIES"); ob_start('mb_output_handler');
Menggunakan fungsi mb_convert_encoding memerlukan mendayakan mbstring PHP (rentetan berbilang bait ) sambungan.
Jika sambungan mbstring PHP tidak didayakan, anda perlu membuat tetapan berikut untuk membenarkan PHP menyokong sambungan.
1. Persekitaran pelayan Windows
Edit fail php.ini, keluarkan ; di hadapan extension=php_mbstring.dll, dan mulakan semula pelayan web.
2. Persekitaran pelayan Linux
Tambahkan parameter kompilasi --enable-mbstring=cn apabila menyusun konfigurasi, dan kemudian susun dan pasang PHP.
Kaedah rujukan ketiga daripada netizen lain:
//方法一 urldecode $url = 'aaa.php?region='.urldecode("四川省"); <a href="<?php echo $url;?>">aaa </a> //方法二base64_encode <? $test="四川省"; $test1=base64_encode($test); echo '<a href="www.jb51.net?region=$test1">aaa </a>'; ?>
Halaman lain menggunakan base64_decode untuk menyahkod
base64_decode($region); //方法三让服务器支持中文 [root@dhcp ~]# locale lang=zh_cn.utf-8 lc_ctype="zh_cn.utf-8" lc_numeric="zh_cn.utf-8" lc_time=c lc_collate=c lc_monetary="zh_cn.utf-8" lc_messages="zh_cn.utf-8" lc_paper="zh_cn.utf-8" lc_name="zh_cn.utf-8" lc_address="zh_cn.utf-8" lc_telephone="zh_cn.utf-8" lc_measurement="zh_cn.utf-8" lc_identification="zh_cn.utf-8" lc_all= [root@dhcp ~]#
Disyorkan Kajian: "Tutorial Video PHP"
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah parameter Cina yang kacau dalam URL dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!