首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 中文編碼轉換:Unicode (UTF-8) 至 GBK 實作類別

     編輯:PHP 相關知識

類別功能

qswhU 類別專注將各種 Unicode 表示形式轉換為 GBK:

  • HTML 十進位實體:〹
  • HTML 十六進位實體:あ
  • URL 編碼:%E3%81%82
  • Unicode 轉義:%u3042
  • UTF-8 位元組序列

內建四種過濾模式,並支援自訂回呼擴充。

核心程式碼片段

<?php
class qswhU {
    var $qswhData;
    function qswhU($filename = "qswhU.php") {
        $this->qswhData = file($filename); // 載入對照表
    }

    function decode($str, $pattern = 0) {
        $patterns = [
            '/&#(\w+);/iU',       // 0: 十進位實體
            '/((%\w\w)+)/i',       // 1: URL 編碼
            '/%u(\w{4,5})/iU'      // 2: %uXXXX
        ];
        if (is_int($pattern)) $pattern = $patterns[$pattern];
        return preg_replace_callback($pattern, [$this, 'u2gb'], $str);
    }

    function u2gb($matches) {
        // 解析 Unicode 碼位 -> 查表 -> 組合 GBK 雙位元組
        // 詳細邏輯見原始碼 (位運算、查表映射)
    }
}
?>

使用範例

<?php
require 'qswhU.php';
$conv = new qswhU();
// 轉換 UTF-8 字串
$utf8 = "測試";
echo $conv->decode($utf8, 3); // 模式 3 為 UTF-8 (原碼註解暗示)
// 轉換 HTML 實體
$html = "&#27979;&#35797;";
echo $conv->decode($html, 0);
?>

下載與注意

  • 對照表檔案:qswhU.zip
  • 僅處理 GBK 覆蓋字符範圍,超出範圍字符可能轉換失敗。
  • 現代專案請直接使用 mb_convert_encoding($str, 'GBK', 'UTF-8') 或 iconv()。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved