<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      編碼對比表的使用(2)

      [摘要]<?php/** * 本程序用于從編碼對照表裝入簡繁編碼,利用序列化來縮短裝入時間 * 同時提供兩個繁簡轉換函數 * 使用方法: * 在需要的程序中加入 * require_once &quo...
      <?php
      /**
      * 本程序用于從編碼對照表裝入簡繁編碼,利用序列化來縮短裝入時間
      * 同時提供兩個繁簡轉換函數
      * 使用方法:
      * 在需要的程序中加入
      * 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編碼,表中big5只有13487個(包括符號)
       */
      $sql = "select gbk,big5,gb2312 from unicode where big5 != ''";
      $rs = mysql_query($sql);
      /**
       * 讀取數據到數組,注意key和value的處理
       */
      $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<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;
      }

      /**
      * 設定轉換類型并輸出頭
      * 此函數前不能有其他輸出
      */
      function setchar($char="gb2312") {
      global $code;
      if($char != "gb2312" && $char != "big5")
      die("字符編碼類型錯!!!");
      if($code[0] != $char)
      $code = array_flip($code);// 若不是指定的編碼類型,則交換鍵
      header("Content-type: text/html; charset=$char");
      }

      ?>
      測試例:
      <?php
      require_once "load_gb_big5.php";
      setchar("big5");

      echo getchar('
      最近完成了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建表代碼(請按實際情況修改):
      ');
      ?>



      日韩精品一区二区三区高清