您现在的位置:计算机技术学习网 > 技术中心 > WEB编程 > PHP >

PHP字符编码问题之GB2312 VS UTF-8

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 14:06 点击:

今天照着书随便写了段代码,代码意图是将字符串使用str_split()函数进行分割成数组,英文好说,但分割中文(两个中文一个数组单元)时就出问题了——

  看代码:

<!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了。

  顺便发现了首动感的Music,拿来分享一下:

  —Its Ok?

  —Its OK!

 

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • PHP测试
      • 十天学会php之第六天
      • 几种显示数据的方法的比较
      • 使用xmlhttp为网站增加域名查询功能
      • PHP+MYSQL+Javascript数据库查询结果的动态显示
      • 查找数组中指定键名的值
      • 用redis实现跨服务器session
      • 用新浪微博接口发送图片微博失败的原因
      • smarty局部缓存技术[源码分析]
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1