<?php
/**
* 当制作好编码对照表后,并不能马上使用还需对其进行一些加工
* 当然简单的查表是可以的但效率不高
* 现在以繁简转换为例,说明对照表的使用
*/
/**
* 连接并打开对照表
*/
$conn = mysql_connect();
mysql_select_db("unicode");
/**
* 提取其中big5和gbk编码,表中big5只有13487个(包括符号)
*/
$sql = "select gbk,big5,gb2312 from unicode where big5 != ''";
//$sql = "select * from unicode";
$rs = mysql_query($sql);
echo mysql_num_rows($rs)."<br>";
/**
* 读取数据到数组,注意key和value的处理
*/
$code = array(0=>"gb",big5=>0);
while($row = mysql_fetch_array($rs)) {
$code[pack("h4",$row][gbk])] = pack("h4",$row[big5]);
// $code[$row][gb2312]] = pack("h4",$row[big5]);
}
mysql_close($conn);
function gb_big5($s) {
global $code;
$v = "";
if($code[0] == "big5")
$code = $arr_flip($code);
for($i=0;$i<strlen($s);$i++) {
if(ord($s[$i]) > 0x7f) {
$p = sprintf("%02x%02x",$s[$i],$s[$i+1]);
$p = $s[$i].$s[$i+1];
$ch = $code[$p];
if($ch == "")
$ch = $s[$i].$s[$i+1];
$v .= $ch;
$i++;
}else
$v .= $s[$i];
}
return $v;
}
echo '<meta http-equiv="content-type" content="text/html; charset=big5">';
echo gb_big5('
最近完成了gbk、gb2312、big5的编码对照表(含其汉语拼音)的整理
现以文本文件方式提供给大家,压缩包297k
其中:(均包括符号)
gbk 21791
big5 15863
gb2312 7478
注意数据行的",",在mysql下必须要有,否则可能出错。有的朋友拿到的新版可能没有,请自行加上。
(2002-10-24)
有兴趣的朋友请与我联系,email:[email protected]
文档格式:
"b6f6","","b6f6","997f","饿","e",
"b6f7","aea6","b6f7","6069","恩","en",
"b6f8","a6d3","b6f8","800c","而","er|neng",
"b6f9","a449","b6f9","513f","儿","er|ren",
顺次为:gbk、big5、gb2312、unicode、字模、拼音
mysql建表代码(请按实际情况修改):
');
?>
新闻热点
疑难解答