ホームページ  >  記事  >  バックエンド開発  >  PHP 中国語からピンインへ (20378 文字をサポート)

PHP 中国語からピンインへ (20378 文字をサポート)

WBOY
WBOYオリジナル
2016-06-13 12:10:511266ブラウズ

PHP 中国語からピンインへ (20378 の漢字をサポート)

PHP 中国語からピンインへ (20378 の漢字をサポート)

プロジェクトでは、中国語のピンイン抽出機能をphpを使用して実装する必要があります当時の実装方法はGB2312を使用していました。フォントライブラリを使用して実装していましたが、プロジェクト内に「KAKA」などの漢字を見つけたときはどうすることもできず、正しいピンインを抽出できませんでした。 。 GB2312 クラス ライブラリのバージョン アドレス: http://blog.csdn.net/wgw335363240/article/details/38588151

できるだけ多くの漢字のピンインを正しく抽出するには、以下を参照してください。 pinyin4j への .jar の Java 実装は、中国語のピンインの抽出を PHP バージョンに変換します。テスト後、使用されている中国語の文字は基本的に正しく変換されます。変換プロセス中、php エンジンはデフォルトで iso-8859-1 エンコーディングを使用するため、「mbstring」クラス ライブラリ サポート をインストールする必要があります。実装されたもの (つまり、strlen('China') の長さは 6 で、これは Java の "China".getBytes().length に相当します。その長さも 6 です。当時、Java は " の実装を提供していました。 China".tochars()、このメソッドで取得される文字セットの長さは 2 で、実際には中国語の文字に従って走査されます)。mbstring クラス ライブラリは、中国語に従って文字列を走査する Java の tochars メソッドと同等です。文字。クラス ライブラリをインストールしない場合は、utf8 エンコードのルールに従ってバイトを走査して、中国語の文字のピンインを抽出する必要があります。

(1) PHP は mbstring クラス ライブラリをサポートする必要があります

(2) PHP が utf-8 エンコーディングを使用して書かれている場合、それは遅延しており、他の言語をサポートするための記述はありません

中国語の文字をピンインに変換する原則は次のとおりです:

(1) Unicode と Pinyin の間のマッピング辞書を定義します (PHP では配列として反映されます)。辞書は pinyin4j からポリフォンとトーンを削除します。 .jar ファイル

( 2) 「厳密」などの漢字を入力します" そして、mbstring クラス ライブラリを使用して、それを 2 つの文字 "strict" と "strict" に解析します

(3) 解析された「Yan」と「Li」から漢字のピンインを抽出するために、関連するメソッドを呼び出します。 たとえば、最初に「Yan」

のピンインを抽出します。

(4) 「strict」という単語(今回は 3 バイトエンコード)を Unicode に変換しますコード (4E25、10 進数: 20005)

(5) Unicode コード (4E25) と辞書キーを比較して、対応するピンインを取得します

(6) 同じ戦略を使用して単語「Li」のピンインを抽出します

抽出効率:

漢字の抽出時間: 0.00076600000000004 秒

コード:

リソースにアップロードされましたが、現在はアップロードできません。

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