PHP字符编码问题之GB2312 VS UTF-8解决方法

 更新时间:2011年06月23日 19:17:59   作者:  
今天照着书随便写了段代码,代码意图是将字符串使用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了。

相关文章

  • 自动把纯文本转换成Web页面的php代码

    自动把纯文本转换成Web页面的php代码

    用PHP来快速将纯ASCII文本完美地转换成为可读的HTML标记。
    2009-08-08
  • Laravel框架中实现使用阿里云ACE缓存服务

    Laravel框架中实现使用阿里云ACE缓存服务

    这篇文章主要介绍了Laravel框架中实现使用阿里云ACE缓存服务,本文扩展了一个ACE缓存驱动,以便使用阿里云ACE缓存服务,需要的朋友可以参考下
    2015-02-02
  • 详解PHP中的mb_detect_encoding函数使用方法

    详解PHP中的mb_detect_encoding函数使用方法

    这篇文章主要介绍了详解PHP中的mb_detect_encoding函数使用方法,包括对字符串编码的转换和判断以及Call to undefined function mb_detect_encoding()错误的解决,需要的朋友可以参考下
    2015-08-08
  • Apache下禁止php文件被直接访问的解决方案

    Apache下禁止php文件被直接访问的解决方案

    想在重写规则里直接禁止php后缀的URL被访问。但后来发现重写规则是递归调用的,如果在重写规则里直接禁止php,那么重写到php文件的规则也会失效,于是有了下面的方法
    2013-04-04
  • PHP HTML代码串截取代码

    PHP HTML代码串截取代码

    需求:将一段文字截取一定的物理长度显示,注意,要截取的不是字符串的字节数,UFT-8 的编码中文字符是3个字节或者4个字节的,而显示的时候中文会占两个字符的长度,英文字符只占一个,全角的时候又有不同。
    2008-12-12
  • PHP实现Soap通讯的方法

    PHP实现Soap通讯的方法

    这篇文章主要介绍了PHP实现Soap通讯的方法,是web service的一个典型应用,需要的朋友可以参考下
    2014-11-11
  • PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例

    PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例

    这篇文章主要介绍了PHP结合jquery ajax实现上传多张图片,并限制图片大小操作,涉及php结合jQuery ajax文件上传及文件属性相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • 使用PHP实现Mysql读写分离

    使用PHP实现Mysql读写分离

    本篇文章是对使用PHP实现Mysql读写分离的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 让PHP以ROOT权限执行系统命令的方法

    让PHP以ROOT权限执行系统命令的方法

    这种问题我想大家可能都遇到过,网友提供的解决方法也很多。我也只是结合自己系统的需求并结合网友的解决方案来总结的一种方法
    2011-02-02
  • 解读PHP中的垃圾回收机制

    解读PHP中的垃圾回收机制

    这篇文章主要介绍了解读PHP中的垃圾回收机制,是否拥有GC功能是一门编程语言开发的重要关注点,需要的朋友可以参考下
    2015-08-08

最新评论