PHP字符编码问题之GB2312 VS UTF-8解决方法 |
本文标签:PHP字符编码 看代码: 复制代码 代码如下: <!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 = "这网站是脚本之家"; 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了 。 |