ホームページ >バックエンド開発 >PHPチュートリアル >PHPで漢字をランダム生成する実装方法
GB 2312-80 は中国の国家標準の簡体字文字セットで、正式名称は「情報交換用中国語コード化文字セット・基本セット」で、中国国家標準局によって発行され、1981 年 5 月 1 日に施行されました。 GB2312 エンコーディングは中国本土で一般的であり、シンガポールや他の場所でもこのエンコーディングが使用されています。中国本土のほぼすべての中国製システムおよび国際ソフトウェアは GB 2312 をサポートしています。
GB2312標準には、第1水準の漢字3755字と第2水準の3008字を含む、合計6763字の漢字が含まれており、また、ラテン文字、ギリシャ文字、日本語のひらがな、カタカナ文字、ロシア語のキリル文字を含む682文字も含まれています。文字。 GB2312 の登場は、基本的に漢字のコンピュータ処理ニーズを満たしています。これに含まれる漢字は、中国本土での使用頻度の 99.75% をカバーしています。 GB2312 は、人名や古代中国語などに現れる稀な文字を処理できません。これが、後の GBK および GB18030 中国語文字セットの出現につながりました。
GB2312 は収集した漢字を「分割」し、各ゾーンには 94 個の漢字/記号が含まれます。この表現は位置コードとも呼ばれます。
01〜09のエリアは特殊なシンボルです。
16 - 55 の領域は第 1 レベルの漢字であり、ピンイン順にソートされています。
領域 56 ~ 87 は、部首/画数ごとに分類された第 2 レベルの漢字です。
地区10〜15と88〜94はコード化されていません。たとえば、文字「あ」は GB2312 の最初の漢字であり、その位置コードは 1601 です。
漢字や記号はそれぞれ2バイトで表されます。最初のバイトは「上位バイト」と呼ばれ、2 番目のバイトは「下位バイト」と呼ばれます。 「上位バイト」は0xA1~0xF7(エリアコード01~87のエリアコードに0xA0を加算)、「下位バイト」は0xA1~0xFE(エリアコード01~94のエリアコードに0xA0を加算)を使用します。 第 1 レベルの漢字は領域 16 から始まるため、漢字領域の「上位バイト」範囲は 0xB0 ~ 0xF7、「下位バイト」範囲は 0xA1 ~ 0xFE、占有コード ビットは 72 * 94 = 6768 となります。 。利用可能なスロットのうち 5 つは D7FA ~ D7FE です。たとえば、ほとんどのプログラムでは、単語「ah」は 0xB0 (最初のバイト) と 0xA1 (2 番目のバイト) の 2 バイトに格納されます。 (市外局番と比較してください: 0xB0 = 0xA0 + 16、0xA1 = 0xA0 + 1)。
国家標準GB 18030-2005「情報技術中国語コード文字セット」は中華人民共和国の最新の内部コード文字セットであり、GB 2312-1980と完全に互換性があり、基本的にGBKと互換性があり、の統一をサポートしています。 GB 13000 と Unicode の漢字、合計 70244 文字の漢字が含まれています。現在のバージョンは、2005 年 11 月 8 日に中華人民共和国品質監督検査総局と中国国家標準化管理委員会によって発表され、2006 年 5 月 1 日に施行されました。これはすべての人々によって支持された必須の規格です。中国のソフトウェア製品。
function getChar($num) // $num为生成汉字的数量 { $b = ''; for ($i=0; $i<$num; $i++) { // 使用chr()函数拼接双字节汉字,前一个chr()为高位字节,后一个为低位字节 $a = chr(mt_rand(0xB0,0xD0)).chr(mt_rand(0xA1, 0xF0)); // 转码 $b .= iconv('GB2312', 'UTF-8', $a); } return $b; }
関連する推奨事項:
中国語の文字の最初の文字を迅速に生成するための sqlserver 関数 (古典)
以上がPHPで漢字をランダム生成する実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。