要么孵化 要么臭掉
PHP下中文编码各种格式间的转换类
类源代码原作者是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

自己另外
谢谢
这里有人提供了GB <-> GBK <-> BIG5 的PHP版本,不过作者并没有直接把码表放出来提供下载,你可以按照文中的email地址去联系一下: http://www3.3800cc.com/Article/web/PHP/p..
一个网页由简体和繁体的中文以及英文,甚至德文混排的,当然是UTF-8编码,
我想把它换成拼音的,在现有的类的基础上,
如果 UTF-8 换 GB2312 就不能换繁体,因为码表没有,
如果 UTF-8 换 BIG5 就不能换简体,
我的修改是,首先 UTF-8 换 GB2312 ,如果码表找不到那就去繁体码表去找,然后把繁体换简体,最后生成拼音。成功了。。。
另外换拼音的函数,我也修改了一下,我没有用一个数组存拼音,因为如果一个英文单词转换输出时,字母之间会有空格。
还有一个建议就是,把悉构函数改一下,我觉得把待转换的字符串放在悉构函数是不恰当的。
因为如果我有很多个字符串要转的话,那就要不停的定义新对象。我个人喜欢的是把字符串放在一个方法里面。
这样,用$chinese->getStr ("UTF-8" , "PinYin" ,$str ) 就可以得到想要的字符串了。
如果有时间,我把这个类整理一下,不过首先要感谢前面那么多位作者的辛勤工作。。。
]
請問,還有其他的連結麼?上面的已經連 不上
我需要「GB <-> GBK <-> BIG5 的PHP版本」
试用了一下,基本可以
但是有些问题。例如 无法将 璽 玺 等转正确,估计是不是 table库的问题呢?
如 ——转换成了 €€€€,还有一些中文字也会这样.
$chs = new Chinese("BIG5","gb2312","郵件編號",$codeTablesDir);
这样是乱码的
繁体字和Big5是两个概念。在GBK,utf-8,unicode等很多种编码方式里面都有繁体字对应的编码,当然Big5也是一种对繁体字的编码方式。
想你写出来的"郵件編號"其实是其他编码方式的繁体字,而不是big5。你找个香港澳门用big5方式的网站使用gb2312来浏览他们的网页就知道big5编码的繁体字在gb方式下看是乱码的。
正常来说,utf-8是国际标准的编码,按道理来说如果我用gbk,big5,gb2312,iso-8859-1其中一种转为utf-8,正常来说是能够识别的啊。但是为什么却会产生乱码呢?
还有的就是:$chs = new Chinese("BIG5","utf-8","郵件編號",$codeTablesDir),无论我用哪种编码转为utf-8似乎也不行~..能否帮我解决这个问题呢?不知道涉及到简体的操作系统或者是繁体的操作问题不。
$chs = new Chinese("BIG5","UTF8","锣传挡狦",$codeTablesDir);
echo $chs->ConvertIT();
在utf-8环境下,这种乱码的字符串才是big5格式的繁体字。
我提供的下载压缩包里面有个Sample.php基本上各种方式的转化都有了,你没有自己去看一眼么?