php轉換字元編碼
① 中文url編碼、base64編碼,php解碼中文部分亂碼
如果兩端伺服器頁面使用的編碼不一致,就會導致亂碼
如你所說,對方伺服器發來的是GBK編碼的內容,如果你本地PHP用的編碼不是GBK就會是亂碼
2種解決方案:
將頁面編碼更改為GBK(可以通過header('Content-Type:text/html charset=gbk');)
將GBK編碼轉為當期頁面編碼(假設當前頁面是utf-8),可以使用iconv('gbk','utf-8',$content);其中$content是你經過urldecode、base64解碼後的字元串
② PHP 轉換中文為編碼
給個轉碼的方法給你吧! 你可以自己修改$outEncoding的參數,下面的方法默認是轉換為gb2312的字元集了,你調用方法就可以將你的字元串轉換字元
//中文字元編碼轉換
public function safeEncoding($string,$outEncoding ='GB2312')
{
$encoding = "UTF-8";
for($i=0;$i<strlen($string);$i++)
{
if(ord($string{$i})<128)
continue;
if((ord($string{$i})&224)==224)
{
//第一個位元組判斷通過
$char = $string{++$i};
if((ord($char)&128)==128)
{
//第二個位元組判斷通過
$char = $string{++$i};
if((ord($char)&128)==128)
{
$encoding = "UTF-8";
break;
}
}
}
if((ord($string{$i})&192)==192)
{
//第一個位元組判斷通過
$char = $string{++$i};
if((ord($char)&128)==128)
{
// 第二個位元組判斷通過
$encoding = "GB2312";
break;
}
}
}
if(strtoupper($encoding) == strtoupper($outEncoding))
return $string;
else
return iconv($encoding,$outEncoding,$string);
}
③ php 將中文轉換為GBK編碼
1、運行控制台,程序->運行,輸入CMD,點擊確定進入DOS操作系統 快捷鍵windows鍵+R鍵。
④ 如何把讀取URL漢字轉化成UTF-8格式
在PHP中,將讀取的URL中的漢字轉換為UTF-8格式,通常會使用iconv函數。假設從URL中讀取到的字元串編碼為GBK,可以使用如下代碼進行轉換:
$str = iconv('GBK', 'UTF-8', $str);
這里,iconv是PHP內置函數,用於轉換字元編碼。'GBK'代表原編碼,'UTF-8'為目標編碼,$str是需要轉換的字元串。
轉換後的字元串將使用UTF-8編碼,可以用於進一步處理或顯示。
需要注意的是,在進行編碼轉換時,確保輸入字元串的原始編碼正確,否則可能會導致亂碼。
此外,除了iconv,PHP還提供了mb_convert_encoding函數,其使用方式類似:
$str = mb_convert_encoding($str, 'UTF-8', 'GBK');
兩種方法在大多數情況下可以互換使用,但iconv在處理某些特殊字元時表現更佳。
進行編碼轉換時,還需注意字元集的設置。在PHP配置文件php.ini中,確保設置正確的默認字元集,以避免潛在的問題。
總之,通過上述方法,可以輕松地將URL中的漢字從GBK編碼轉換為UTF-8格式,確保其在各種系統和應用程序中都能正確顯示。