>백엔드 개발 >PHP 튜토리얼 >PHP에서 한자를 무작위로 생성하는 구현 방법

PHP에서 한자를 무작위로 생성하는 구현 방법

小云云
小云云원래의
2018-03-02 09:18:044641검색

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 구역은 코드화되지 않았습니다. 예를 들어, 문자 "ah"는 GB2312의 첫 번째 한자이고 해당 위치 코드는 1601입니다.

 각 한자와 기호는 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(두 번째 바이트)의 두 바이트에 저장됩니다. (지역번호와 비교: 0xB0 = 0xA0 + 16, 0xA1 = 0xA0 + 1).

  국가 표준 GB 18030-2005 "정보 기술 중국어 코드 문자 집합"은 중화인민공화국의 최신 내부 코드 문자 집합으로 GB 2312-1980과 기본적으로 호환되며 GBK의 통일을 지원합니다. GB 13000 및 유니코드 한자 총 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.