【轉貼】
PHP Big5 Utf-8 GB2312 相互转码解决办法
编写 PHP 代码的过程中,经常会遇到需要对中文转码的问题,如 GB2312 <=> Unicode、GB2312 <=> Big5 等等。如果 PHP 编译时带有 mbstring 的话,可以使用 Multi-Byte String Function 实现部分转码工作。然而由于很多虚拟主机不支持 mbstring,或者 mbstring 的编译、配置过于麻烦,很多 PHP 代码无法使用这一序列的函数。
最近为了解决这个问题,找到一个不错的项目:PHP News Reader,这是一个基于 WEB 的新闻阅读器,支持基于 NNTP (RFC 977) 协议的新闻文章的阅读、发布、删除、回复等功能。这个项目实现了 GB2312 Big5 Unicode(UTF-8) 之间的相互转码,这个正是我所关心的部分。
使用 CVS 客户端(Linux 下直接用命令行就行,Windows 下推荐使用 Tortoise CVS)将项目的代码 Check Out 出来:
# cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/pnews login Logging in to :pserver:anonymous@cvs.sourceforge.net:2401/cvsroot/pnews CVS password: (Press Enter) # cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/pnews co pnews cvs server: Updating pnews …查看 pnews/language 目录,此目录下包含了如下文件:
big5-gb.tab big5-unicode.tab gb-big5.tab gb-unicode.tab unicode-big5.tab unicode-gb.tab