首頁 後端開發 PHP問題 php url 中文亂碼的解決方法總結

php url 中文亂碼的解決方法總結

Jul 07, 2020 am 09:40 AM

php url中文亂碼的解決方法:1、使用「urlencode」函數解決url編碼問題,語法是「string urlencode(string str);」;2、透過「urldecode」函數還原URL編碼字串。

php url 中文亂碼的解決方法總結

php網址列傳中文$_GET下來後亂碼,urlencode和urldecode用法詳

url編碼

語法: string urlencode(string str);

傳回值:字串

函數種類: 編碼處理

例如:

程式碼如下:

<?php
$ChineseName="我的名字,是中文的哦";
$EncodeStr=urlencode($ChineseName);
echo "<a href=/cgi/personal.cgi?name=$EncodeStr>我的名字</a>";
?>
登入後複製

url解碼

#還原URL 編碼字串。

語法: string urldecode(string str);

返回值: 字串

函數種類: 編碼處理

例如:

#對前面傳過來的中文進行處理顯示

代碼如下:

<?php
$DecodeStr=urldecode($_GET[&#39;name&#39;]);//你可能不用解码都可以,因为浏览器会自动帮你解码
echo $DecodeStr;
?>
登入後複製

關於php用get方法從url上獲得的中文亂碼問題

使用$gonghui = iconv("gb2312","UTF-8",$gonghui);另一方法代碼

/**
* 多字节字符串编码转换函数
*
* @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] )
**/
登入後複製

mb_convert_encoding 

函數為php內部多位元組字串編碼轉換函數,可以在有需要的使用場合,幾乎支援所有編碼。

PHP  >= 4.0.6、 5 版本支援。

直接取得reg.php?gh=某某;

 //工会登入参
$gonghui = $_GET[&#39;gh&#39;];
登入後複製

所得的$gonghui 為gb2312編碼輸出到utf-8網頁上顯示亂碼

#改為

 //工会登入参数
 $gonghui = $_GET[&#39;gh&#39;];
 $gonghui = mb_convert_encoding($gonghui, "UTF-8", "gb2312");
登入後複製

 就顯示正常了

對整個頁面進行轉換

該方法適用所有編碼環境。這樣把前128個字元以外(顯示字元)的字元集都用   NCR(Numeric character reference,如「漢字」將轉換成「漢字」這種形式)來表示,這樣的編碼在任意編碼環境下頁面都能正常顯示。

在php檔案的頭部加上下面三行程式碼:

程式碼如下:

mb_internal_encoding("gb2312");  // 这里的gb2312是你网站原来的编码    
mb_http_output("HTML-ENTITIES");    
ob_start(&#39;mb_output_handler&#39;);
登入後複製

使用mb_convert_encoding 函數需啟用PHP 的mbstring (multi-byte string)擴充。

如果沒有沒有開啟php的mbstring擴展,則需要做如下設置,讓php支援該擴展。

1、windows 伺服器環境

編輯 php.ini 文件,將; extension=php_mbstring.dll 前面的 ; 去掉,重啟網頁伺服器。

2、Linux伺服器環境

在編譯設定時加入 --enable-mbstring=cn 編譯參數,再進行PHP的編譯安裝。

其它網友的第三個參考方法:

//方法一 urldecode
$url = &#39;aaa.php?region=&#39;.urldecode("四川省");
<a href="<?php echo $url;?>">aaa </a>
//方法二base64_encode
<?
$test="四川省";
$test1=base64_encode($test);
echo &#39;<a href="www.jb51.net?region=$test1">aaa </a>&#39;;
?>
登入後複製

另一頁使用base64_decode解開

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 ~]#
登入後複製

更多相關知識,請訪問PHP中文網

以上是php url 中文亂碼的解決方法總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)