php字符串编码相互转换函数(GBK/UTF-8)
发布:smiling 来源: PHP粉丝网 添加日期:2015-04-09 14:24:49 浏览: 评论:0
虽然说php自带了编码转换函数,但是在使用时会碰到字符丢失问题了,为了解决这个问题小编整理了两上将非GBK字符集的编码转为GBK与将非UTF-8字符集的编码转为UTF-8的函数,希望能帮助到各位.
例子代码如下:
- <?php
 - /**
 - * 将非GBK字符集的编码转为GBK
 - *
 - * @param mixed $mixed 源数据
 - *
 - * @return mixed GBK格式数据
 - */
 - function charsetToGBK($mixed)
 - {
 - if (is_array($mixed)) {
 - foreach ($mixed as $k => $v) {
 - if (is_array($v)) {
 - $mixed[$k] = charsetToGBK($v);
 - } else {
 - $encode = mb_detect_encoding()($v, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5'));
 - if ($encode == 'UTF-8') {
 - $mixed[$k] = iconv('UTF-8', 'GBK', $v);
 - }
 - }
 - }
 - } else {
 - $encode = mb_detect_encoding($mixed, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5'));
 - //var_dump($encode);
 - if ($encode == 'UTF-8') {
 - $mixed = iconv('UTF-8', 'GBK', $mixed);
 - }
 - }
 - return $mixed;
 - }
 - /**
 - * 将非UTF-8字符集的编码转为UTF-8
 - *
 - * @param mixed $mixed 源数据
 - *
 - * @return mixed utf-8格式数据
 - */
 - function charsetToUTF8($mixed)
 - {
 - if (is_array($mixed)) {
 - foreach ($mixed as $k => $v) {
 - if (is_array($v)) {
 - $mixed[$k] = charsetToUTF8($v);
 - } else { //开源软件:phpfensi.com
 - $encode = mb_detect_encoding($v, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5'));
 - if ($encode == 'EUC-CN') {
 - $mixed[$k] = iconv('GBK', 'UTF-8', $v);
 - }
 - }
 - }
 - } else {
 - $encode = mb_detect_encoding($mixed, array('ASCII', 'UTF-8', 'GB2312', 'GBK', 'BIG5'));
 - if ($encode == 'EUC-CN') {
 - $mixed = iconv('GBK', 'UTF-8', $mixed);
 - }
 - }
 - return $mixed;
 - }
 - ?>
 
Tags: php字符串编码 php转换函数
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
 - PHP新手上路(一)(7)
 - 惹恼程序员的十件事(5)
 - PHP邮件发送例子,已测试成功(5)
 - 致初学者:PHP比ASP优秀的七个理由(4)
 - PHP会被淘汰吗?(4)
 - PHP新手上路(四)(4)
 - 如何去学习PHP?(2)
 - 简单入门级php分页代码(2)
 - php中邮箱email 电话等格式的验证(2)
 
