検索
ホームページphp教程php手册iconv ライブラリを使用しない gb2312 と utf-8 間の互換機能


gb2312.txt のコピー (184799 バイト) は実際には大きすぎるため、Unicode に変換する必要があります。
この比較表は 51965 バイトで、これよりはるかに小さいです。
iconv 関数ライブラリが使用できない状況でも非常に実用的です。

//比較テーブルの使用
$filename = "gb2utf8.txt";
$fp = fopen($filename,"r"); while(! feof($fp)) {
list($gb,$utf8) = fgetcsv($fp,10);
$charset[$gb] = $utf8; fclose($fp);
//後で使用するために上記の比較表を配列に読み込みます

/**gb2312 から utf-8**/
function gb2utf8($text, &$charset) {
//テキストからコンポーネントを抽出します。中国語文字は 1 つの要素、連続する非中国語文字は 1 つの要素です
preg_match_all("/(?:[x80-xff].)|[x01-x7f] / ",$text,$ tmp);
$tmp = $tmp[0];
//漢字を区切る
$ar = array_intersect($tmp, array_keys($charset));
//中国語の文字エンコーディングを置き換えます
foreach($ar as $k=>$v)
$tmp[$k] = $charset[$v]
//エスケープされた文字列を返します
return join(' ',$tmp);
}

/**utf-8 から gb2312**/
function utf82gb($text, &$charset) {
$p = " /[xf0-xf7 ][x80-xbf]{3}|[xe0-xef][x80-xbf]{2}|[xc2-xdf][x80-xbf]|[x01-x7f] /";
preg_match_all($p ,$text,$r);
$utf8 = array_flip($charset);
foreach($r[0] as $k=>$v)
if(isset) ($utf8[$ v]))
$r[0][$k] = $utf8[$v];
return join('',$r[0]); 🎜>
//Test
$s = gb2utf8('これは比較テーブルのテストです', $charset);
echo utf82gb($s, $charset)>?


声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境