程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP字符編碼問題之GB2312 VS UTF-8

PHP字符編碼問題之GB2312 VS UTF-8

編輯:關於PHP編程

今天照著書隨便寫了段代碼,代碼意圖是將字符串使用str_split()函數進行分割成數組,英文好說,但分割中文(兩個中文一個數組單元)時就出問題了——

  看代碼:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "html4/loose.dtd">>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 = "這本書是藍海戰略";       

 print_r(str_split($string1));       

echo "<br />";       

print_r(str_split($string2,4));  

  ?> </body>

</html>  

測試結果打出我所料——中文亂碼

  Why?Why?Why?Why?亂碼是什麼?什麼事亂碼?給我解釋解釋,什麼,是%&的亂碼!

  因為英文無亂碼,只有中文亂碼,首先想到了編碼的問題,於是突然想起來UTF-8的編碼是UTF-8需要3個字節,死馬當活馬醫吧!

  於是  print_r(str_split($string2,4));這句中的4 ,就被換成了6,於是乎——看結果

  同樣,你也可以試試將編碼的charset的UTF-8改成GB2312,因為Unicode的編碼是需要2字節的,所以說Gb2312的編碼比UTF-8能夠節約1/3的空間,但是如果你要兼容繁體中文、韓文、日文的其他的語言就需要使用UTF-8了。

  順便發現了首動感的Music,拿來分享一下:

  —Its Ok?

  —Its OK!

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved