PHP实现的各种中文编码转换类分享

目前该类库可以实现的编码转换有:简体中文 GB <-> 繁体中文 BIG5 编码互换,简/繁体中文 -> 拼音单向转换, 简/繁体中文 <-> UTF8 编码转换,简/繁体中文 -> Unicode单向转换。

类源代码原作者是Hessian(solarischan@21cn.com),我合并了一下原来的Sample脚本,同时修改了一下类文件,为类构造函数增加了一个参数以便用户可以方便的在使用的时候设置配置文件路径,这样就可以把这个类包放置在任何可以被访问到的目录下,否则原来的版本下引用class.Chinese.php的文件必须和class在相同的目录下面才行。

代码如下:

/**
 * 中文编码集合类库
 *
 * 目前该类库可以实现,简体中文 <-> 繁体中文编码互换,简体中文、繁体中文 -> 拼音单向转换,
 * 简体中文、繁体中文 <-> UTF8 编码转换,简体中文、繁体中文 -> Unicode单向转换
 *
 * @作者         Hessian(solarischan@21cn.com)
 * @版本         1.7
 * @版权所有     Hessian / NETiS
 * @使用授权     GPL(不能应用于任何商业用途,无须经过作者同意即可修改代码,但修改后的代码必须按照GPL协议发布)
 * @特别鸣谢     unknow(繁简转换代码片断)
 * @起始         2003-04-01
 * @最后修改     2005-07-26
 * @访问         公开
 *
 * 更新记录
 *
 * ver 1.7 2005-07-26
 * 修改了while循环导致的bug。此bug当字符串最后一个字符为"0"的时候将处理错误。
 * 受影响方法: CHStoUTF8() , CHStoUNICODE()
 * (by Zeal Li ,http://www.zeali.net/)
 *
 * ver 1.6 2005-05-16
 * 构造函数增加了一个参数以便用户可以方便的在使用的时候设置配置文件路径
 * (by Zeal Li ,http://www.zeali.net/)
 *
 * ver 1.5 2003-06-06
 * 增加 UTF8 转换到 GB2312、BIG5的功能。
 *
 * ver 1.4 2003-04-07
 * 增加 当转换HTML时设定为true,即可改变charset的值。
 *
 * ver 1.3 2003-04-02
 * 增加 繁体中文转换至拼音的功能。
 *
 * ver 1.2 2003-04-02
 * 合并 简体、繁体中文转换至UTF8的函数。
 * 修改 简体中文转换至拼音的函数,返回值更改为字符串,每一个汉字的拼音用空格分开
 * 增加 简体中文转换为 UNICODE 的功能。
 * 增加 繁体中文转换为 UNICODE 的功能。
 *
 * ver 1.1 2003-04-02
 * 增加 OpenFile() 函数,支持打开本地文件和远程文件。
 * 增加 简体中文转换为 UTF8 的功能。
 * 增加 繁体中文转换为 UTF8 的功能。
 *
 * ver 1.0 2003-04-01
 * 一个集合了中文简体,中文繁体对应各种编码互换的类库已经初步完成。
 */

下载完整源代码包(filesize: 132,522 bytes) : 下载源代码 chinese.rar

(0)

相关推荐

  • php实现文件编码批量转换

    有些问题,不能重复转,比如gbk转到utf8,然后有在转成utf8,这样会乱码,我本来试图在转换之前去检测编码的,貌似失败了.我特意试了一个文件,我检测它是是否是gbk或者是utf-8,都返回true.这就不懂了. 复制代码 代码如下: <?php/** * 转换文件编码 * 依赖的扩展filesystem 和 mbstring * @example * <pre> * include_once 'ConvertEncode.php'; * $convert = new ConvertE

  • 基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)

    php导入到excel乱码是因为utf8编码在xp系统不支持所有utf8编码转码一下就完美解决了utf-8编码案例Php代码 复制代码 代码如下: <?php header("Content-Type: application/vnd.ms-excel; charset=UTF-8"); header("Pragma: public"); header("Expires: 0"); header("Cache-Control: m

  • 详谈PHP编码转换问题

    最近恰好要用到unicode编码的转换,就去查了一下php的库函数,居然没找到一个函数可以对字符串进行Unicode的编码和解码!也罢,找不到的话就自己实现一下了... Unicode和Utf-8编码的区别 Unicode是一个字符集,而UTF-8是Unicode的其中一种,Unicode是定长的都为双字节,而UTF-8是可变的,对于汉字来说Unicode占有的字节比UTF-8占用的字节少1个字节.Unicode为双字节,而UTF-8中汉字占三个字节. UTF-8编码字符理论上可以最多到6个字节

  • php自动识别文字编码并转换为目标编码的方法

    本文实例讲述了php自动识别文字编码并转换为目标编码的方法.分享给大家供大家参考.具体如下: 在PHP处理页面的时候,我们对于字符集的转换都是采用了iconv或者mb_convert等函数,但,这其实是有一个前提的.即我们事先得知道in和out是什么样的编码,我们才能进行正确的转换. 虽然大多数转换都是在gbk和utf-8之间转,但如果不知道转换对象的编码怎么办呢?谷歌出来这么一个函数safeEncoding,可以简单的识别UTF8和GBK的编码.这个函数在一定程度上识别的很准确,但是在一些比较

  • 浅析PHP中的字符串编码转换(自动识别原编码)

    复制代码 代码如下: /** * 对数据进行编码转换 * @param array/string $data       数组 * @param string $output    转换后的编码 */function array_iconv($data,$output = 'utf-8') { $encode_arr = array('UTF-8','ASCII','GBK','GB2312','BIG5','JIS','eucjp-win','sjis-win','EUC-JP'); $enc

  • PHP转换文件夹下所有文件编码的实现代码

    PHP转换文件夹下所有文件的编码 适合发布网站的其他编码版本 比如你有一个GBK版本 你想有一个UTF8版本 或者你只有GBK的源码 你想二次开发 但是你不想改变IDE的编码方式 你可以用这个程序将其批量转化为UTF8:代码如下: 复制代码 代码如下: <?php/*** 把一个文件夹里的文件全部转码 只能转一次 否则全部变乱码* @param string $filename*/function iconv_file($filename,$input_encoding='gbk',$outpu

  • php数组编码转换示例详解

    因为一些特殊字符的显示效果的原因不得不把习惯的utf-8工程改成了GBK,由于使用了ajax技术,又涉及到了老问题--编码转换.一些表单验证需要返回json数据,php的json_encode函数只支持utf-8编码,无奈只得iconv了,需要达到的效果是GBK数组转换成utf-8数组传给json_encode函数. 最开始的思路,将数组序列化后用iconv函数转换编码,之后再反序列化,代码如下: 复制代码 代码如下: unserialize(iconv('gbk','utf-8',serial

  • php自动识别文件编码并转换为UTF-8的方法

    PHP转换文件编码是一个比较简单的事情,但是在开发中传递中文参数的时候,有时候不知道是什么编码,结果造成了乱码的现象.这里有个非常方便的解决办法,可以自动识别编码并转换为UTF-8.具体代码如下: 复制代码 代码如下: function characet($data){  if( !empty($data) ){        $fileType = mb_detect_encoding($data , array('UTF-8','GBK','LATIN1','BIG5')) ;      

  • PHP学习笔记之字符串编码的转换和判断

    复制代码 代码如下: iconv('GBK', 'UTF-8//IGNORE', '我们'); // 将字符串由 GBK 编码转换为 UTF-8 编码 但 iconv 只能解决编码预先知道的情况,如果字符串编码未知,则需要先探测其编码,这时可能会用到 mb_string 扩展库: 复制代码 代码如下: mb_detect_encoding('我们'); 可是 mb_detect_encoding 存在一个硬伤,经常出现判断不准确的情况.或许这样就可以解决: 复制代码 代码如下: // 使用 ic

  • php字符编码转换之gb2312转为utf8

    在php中字符编码转换我们一般会用到iconv与mb_convert_encoding进行操作,但是mb_convert_encoding在转换性能上比iconv要差很多哦.string iconv ( string in_charset, string out_charset, string str ) 注意:第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,其中 //TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符

  • PHP编码转换函数 自动转换字符集支持数组转换

    复制代码 代码如下: // 自动转换字符集 支持数组转换 function auto_charset($fContents, $from='gbk', $to='utf-8') { $from = strtoupper($from) == 'UTF8' ? 'utf-8' : $from; $to = strtoupper($to) == 'UTF8' ? 'utf-8' : $to; if (strtoupper($from) === strtoupper($to) || empty($fCo

随机推荐