PHP字符编码问题之GB2312 VS UTF-8
今天照著書隨便寫了段代碼,代碼意圖是將字符串使用str_split()函數(shù)進(jìn)行分割成數(shù)組,英文好說,但分割中文(兩個(gè)中文一個(gè)數(shù)組單元)時(shí)就出問題了——
看代碼:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> New Document </title>
<meta name="author" content=""/>
<meta name="keywords" content=""/>
<meta name="description" content=""/>
<link rel="stylesheet" type="text/css" href="" />
</head>
<body>
<?php
$string1 = "i am a phper";
$string2 = "這本書是藍(lán)海戰(zhàn)略";
print_r(str_split($string1));
echo "<br />";
print_r(str_split($string2,4));
?>
</body>
</html>
測(cè)試結(jié)果打出我所料——中文亂碼
Why?Why?Why?Why?亂碼是什么?什么事亂碼?給我解釋解釋,什么,是%&的亂碼!
因?yàn)橛⑽臒o亂碼,只有中文亂碼,首先想到了編碼的問題,于是突然想起來UTF-8的編碼是UTF-8需要3個(gè)字節(jié),死馬當(dāng)活馬醫(yī)吧!
于是 print_r(str_split($string2,4));這句中的4 ,就被換成了6,于是乎——看結(jié)果
同樣,你也可以試試將編碼的charset的UTF-8改成GB2312,因?yàn)閁nicode的編碼是需要2字節(jié)的,所以說Gb2312的編碼比UTF-8能夠節(jié)約1/3的空間,但是如果你要兼容繁體中文、韓文、日文的其他的語言就需要使用UTF-8了。
順便發(fā)現(xiàn)了首動(dòng)感的Music,拿來分享一下:
—It's?Ok?
—It's OK!
[hjp3]hjptype=song&player=1&son=http://blog.whnews.cn/blogatca/Mon_0711/9062_1194571178_NI2PNoZHaTjRCmi.mp3&autoplay=yes&autoreplay=1&bgcolor=FFFFFF&width=200&height=20[/hjp3]
總結(jié)
以上是生活随笔為你收集整理的PHP字符编码问题之GB2312 VS UTF-8的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于“大”公司工作
- 下一篇: php excel 函数,php实现ex