PHP字符编码问题之GB2312 VS UTF-8解决方法
2015-01-24信息快讯网
今天照着书随便写了段代码,代码意图是将字符串使用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了。
php实现文件下载更能介绍
php 定义404页面的实现代码
php中的注释、变量、数组、常量、函数应用介绍
apache php模块整合操作指南
php获取用户IPv4或IPv6地址的代码
PHP正确解析UTF-8字符串技巧应用
PHP编码转换
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
Zend的AutoLoad机制介绍
说说PHP的autoLoad自动加载机制
PHP输入流php://input介绍
PHP UTF8中文字符截断函数代码
php和mysql中uft-8中文编码乱码的几种解决办法
PHP乱码问题,UTF-8乱码常见问题小结
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
php urlencode()与urldecode()函数字符编码原理详解
PHP学习散记_编码(json_encode 中文不显示)
php whois查询API制作方法
PHP读取网页文件内容的实现代码(fopen,curl等)
php中获取指定IP的物理地址的代码(正则表达式)
PHP学习笔记 (1) 环境配置与代码调试
php开发过程中关于继承的使用方法分享
php设计模式 Command(命令模式)
php自动获取字符串编码函数mb_detect_encoding
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
php file_put_contents()功能函数(集成了fopen、fwrite、fclose)
zend api扩展的php对象的autoload工具
在MongoDB中模拟Auto Increment的php代码
Base64在线编码解码实现代码 演示与下载
PHP的autoload自动加载机制使用说明
php+jquery编码方面的一些心得(utf-8 gb2312)
PHP编码规范之注释和文件结构说明
php UTF-8、Unicode和BOM问题
php 中文和编码判断代码
PHP生成UTF8文件的方法
PHP iconv 解决utf-8和gb2312编码转换问题
php截取utf-8中文字符串乱码的解决方法