<?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 其中:(均包括符號) gbk21791 big5 15863 gb2312 7478 注意數據行的",",在mysql下必須要有,否則可能出錯。有的朋友拿到的新版可能沒有,請自行加上。 (2002-10-24) 有興趣的朋友請與我聯系,email:czjsz_ah@stats.gov.cn
文檔格式: "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建表代碼(請按實際情況修改): '); ?>
|