编码
/**
* このプログラムは、読み込み時間を短縮するためにシリアル化を使用して、コーディング比較テーブルから簡略化コードと従来型コードをロードするために使用されます
* 2 つの従来型と簡素化の変換関数を同時に提供します
* 使用方法:
* 追加
* require_once必要なプログラム「load_gb_big5.php」に;
* setchar(["big5"]);
*/
$filename = "gb_big5.txt";
if(!file_exists($filename)) {
/**
* 接続して比較表を開きます
*/
$conn = mysql_connect( );
mysql_select_db("unicode");
/**
* big5 と gbk コードを抽出します。テーブルには 13487 個の big5 しかありません (シンボルを含む)
*/
$sql = "select gbk,big5,gb2312 from unicode where big5 != ''";
$rs = mysql_query($sql);
/**
* 配列にデータを読み込み、キーと値の処理に注意してください
*/
$code = array(0=>"big5",gb2312=>0);
while($row = mysql_fetch_array($rs)) {
$code[pack( "H4",$row][gbk])] = Pack("H4",$row[big5]);
}
mysql_close($conn);
$fp = fopen($filename,"w");
fwrite($fp,serialize($code));
fclose($fp);
}else {
$fp = fopen($filename,"r");
$code = unserialize(fread($fp,filesize( $filename)));
fclose($fp);
}
/**
* 入力文字列を対応するエンコーディングに変換します
*/
function getchar($s) {
global $code;
$v = "";
for($i =0;$i
$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;
}
/**
* 変換タイプを設定し、ヘッダーを出力します
* この関数の前に他の出力があってはなりません
*/
function setchar($char="gb2312") {
global $code;
if($char != "gb2312" && $char != "big5")
die("字符编码类型错!!!");
if($code[0] != $char)
$code = array_flip($code); " load_gb_big5.php";
setchar("big5");
echo getchar('
最近完了したgbk、gb2312、big5のコード对照表(その汉语拼音を含む)の整理
现文本文形式で提供されています。圧縮パケット 297k
その内:(両方にシンボルが含まれています)
gbk 21791
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建表代码(请按实际情况修改):
');
?>