導航:首頁 > 編程語言 > phputf8encode

phputf8encode

發布時間:2023-06-02 01:53:46

① 如何用php設置utf-8編碼

在你的源文件找到<meta http-equiv="content-type" content="text/html;charset=utf-8">charset= 後面接的就是編碼,你全部改了就可以了。如果你改了之後變成亂碼的話,那你就只能先建一個utf-8編碼的網頁,把相應的內容重新輸入進去。

② 如何把php文件編碼更改為utf-8

與 php 編碼有關的,有兩處地方:


1、php 文件本身的編碼格式:

根據使用 php 編寫軟體的不同,其操作方法有所區別,比如 phpDesigher 軟體:


<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>

③ php 如何判斷字元是否是utf8編碼

嚴格來說,不好判斷,但如下方法或許能給你應急處理。 function is_utf8_encode($str, $flag=false){ static $charset = null; if($charset == null){ //gbk中的漢字,但是滿足utf-8的編碼規范,對於這些漢字當做gbk字元處理 $charstr = '隴摟簍擄鹵路脳脿謾貓茅錨矛鉚貌貿梅霉煤眉膩膿臎墨艅艌艒奴菐菒菕菙菛菢菤菧蓱傘藝藟藠藡藱螒螔螕螖螘螙螚螛螜螝螞螠螡螢螣螤巍危韋違桅圍唯惟偽尾緯未蔚味畏胃喂魏位渭謂尉慰蟺蟻蟽蟿蠀蠁蠂蠄蠅衼袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖嘯笑效楔些歇蠍鞋協挾攜邪斜脅諧寫械卸蟹懈泄瀉謝屑薪芯鋅褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟褢'; $charset = str_split($charstr, 2); $charset = array_flip($charset);}$pflag = true;$qflag = false; $len = strlen($str);

④ 怎麼用PHP把unicode轉成utf8

function unescape($str) {
$str = rawurldecode($str);
preg_match_all("/(?:%u.{4})|&#x.{4};|&#\d+;|.+/U",$str,$r);
$ar = $r[0];
//print_r($ar);
foreach($ar as $k=>$v) {
if(substr($v,0,2) == "%u"){
$ar[$k] = iconv("UCS-2BE","UTF-8",pack("H4",substr($v,-4)));
}
elseif(substr($v,0,3) == "&#x"){
$ar[$k] = iconv("UCS-2BE","UTF-8",pack("H4",substr($v,3,-1)));
}
elseif(substr($v,0,2) == "&#") {

$ar[$k] = iconv("UCS-2BE","UTF-8",pack("n",substr($v,2,-1)));
}
}
return join("",$ar);
}
echo unescape("紫星藍");
今天有用戶反饋,表單系統用戶提交的數據中文會亂碼。測試發現問題出在 iconv 轉換上。
iconv('UCS-2', 'GBK', '中文')
Google 搜索發現,原因是 linux 伺服器上 UCS-2 編碼方式與 Winodws 不一致。
於是,我改成 iconv('UCS-2BE', 'GBK', '中文') 試試,中文正常了

以下是有關兩個平台 UCS-2 編碼的潛規則:

1, UCS-2 不等於 UTF-16。 UTF-16 每個位元組使用 ASCII 字元范圍編碼,而 UCS-2 對每個位元組的編碼可以超出 ASCII 字元范圍。UCS-2 和 UTF-16 對每個字元至多佔兩個位元組,但是他們的編碼是不一樣的。

2, 對於 UCS-2, windows 下默認是 UCS-2LE。用 MultibyteToWidechar(或者A2W)生成的是 UCS-2LE 的 unicode。windows記事本可以將文本保存為 UCS-2BE,相當於多了層轉換。

3, 對於 UCS-2, linux 下默認是 UCS-2BE。用iconv(指定UCS-2)來轉換生成的是 UCS-2BE 的 unicode。如果轉換windows平台過來的 UCS-2, 需要指定 UCS-2LE。

4, 鑒於windows和linux等多個平台對 UCS-2 的理解不同(UCS-2LE,UCS-2BE)。MS 主張 unicode 有個引導標志(UCS-2LE FFFE, UCS-2BE FEFF),以表明下面的字元是 unicode 並且判別 big-endian 或 little-endian。 所以從 windows 平台過來的數據發現有這個前綴,不用慌張。

5, linux 的編碼輸出,比如從文件輸出,從 printf 輸出,需要控制台做適當的編碼匹配(如果編碼不匹配,一般和該程序編譯時的編碼有若干關系),而控制台的轉換輸入需要查看當前的系統編碼。比如控制台當前的編碼是 UTF-8, 那麼 UTF-8 編碼的東西能正確顯示,GBK 就不能;同樣,當前編碼是 GBK, 就能顯示 GBK 編碼,後來的系統應該更智能的處理好更多的轉換了。不過通過 putty 等終端還是需要設置好終端的編碼轉換以解除亂碼的煩惱。
PHP中對漢字進行UNICODE編碼和解碼的實現
//將內容進行UNICODE編碼
function unicode_encode($name)
{
$name = iconv('UTF-8', 'UCS-2', $name);
$len = strlen($name);
$str = '';
for ($i = 0; $i < $len - 1; $i = $i + 2)
{
$c = $name[$i];
$c2 = $name[$i + 1];
if (ord($c) > 0)
{ // 兩個位元組的文字
$str .= '\u'.base_convert(ord($c), 10, 16).base_convert(ord($c2), 10, 16);
}
else
{
$str .= $c2;
}
}
return $str;
}
$name = 'MY,你大爺的';
$unicode_name=unicode_encode($name);
echo '<h3>'.$unicode_name.'</h3>';
// 將UNICODE編碼後的內容進行解碼
function unicode_decode($name)
{
// 轉換編碼,將Unicode編碼轉換成可以瀏覽的utf-8編碼
$pattern = '/([\w]+)|(\\\u([\w]{4}))/i';
preg_match_all($pattern, $name, $matches);
if (!empty($matches))
{
$name = '';
for ($j = 0; $j < count($matches[0]); $j++)
{
$str = $matches[0][$j];
if (strpos($str, '\\u') === 0)
{
$code = base_convert(substr($str, 2, 2), 16, 10);
$code2 = base_convert(substr($str, 4), 16, 10);
$c = chr($code).chr($code2);
$c = iconv('UCS-2', 'UTF-8', $c);
$name .= $c;
}
else
{
$name .= $str;
}
}
}
return $name;
}
echo 'MY,\u4f60\u5927\u7237\u7684 -> '.unicode_decode($unicode_name);

⑤ php中用utf8編碼輸出中文就是亂碼

1【資料庫】->2【php代碼文件】->3【瀏覽器】

假如【資料庫】用utf8,php【代碼文件】也用utf8,【瀏覽器】查看時也用utf8。那麼恭喜你,不會出現亂碼的問題。

而最容易出問題的就是:php【代碼文件】
header("Content-Type: text/html; charset=utf-8");
echo "中文"; //此處的【中文】兩個字的編碼類型與文件編碼類型相同。
echo iconv('gb2312', 'utf-8', '中文'); //此處則將【中文】兩個字在【輸出】時轉換成了utf8,所以不會出現亂碼了(假設用win記事本默認存儲為gb2312)。

⑥ php中輸出字元串的utf-8編碼

比如輸入「呵」,輸出%E5%91%B5
這個是urlencode的...

閱讀全文

與phputf8encode相關的資料

熱點內容
高三倒計時緩解壓力 瀏覽:619
一捏就變形的解壓玩具怎麼折 瀏覽:196
易融貸app借錢怎麼 瀏覽:939
單片機側重點 瀏覽:867
江蘇惠普伺服器虛擬化設計雲主機 瀏覽:647
在歐拉app好貓充電樁怎麼申請 瀏覽:449
反編譯代碼教程 瀏覽:798
linuxio阻塞 瀏覽:973
8腳單片機pic 瀏覽:821
如何看彩色塗鴉遮住的字安卓 瀏覽:688
擺渡機器人編程 瀏覽:654
軟程序員著裝 瀏覽:139
寶雞雲存儲伺服器 瀏覽:668
推薦超解壓游戲無廣告 瀏覽:634
大華伺服器怎麼添加門禁 瀏覽:784
戰地伺服器60hz什麼意思 瀏覽:760
成高級程序員學什麼 瀏覽:501
阿里雲接入備案後退掉伺服器 瀏覽:928
ne40e命令 瀏覽:85
安卓輸入法使用什麼編碼 瀏覽:184