PHPはバイナリバイトストリームを中国語文字列に変換する


最近YII 2の中国語の検証コードの機能を開発して、1種の成語の検証コードを必要として、それから私はC++でいくつか成語を生成して、最終的にバイナリファイルを生成して、GBKコードによって保存して、1つの漢字の2バイト.
最終的にはPHPがバイナリファイルを読み込む必要があり、バイナリファイルを読み取る際に問題が発生し、このバイナリを文字列に変換する必要があり、ネット上でいくつかの資料を探して最終的に以下の方法が実行可能であることを確定した.

    $c = dirname(__FILE__)."/idiom.dat";//            
    $handle = fopen($c, "rb");//      
    $contents = fread($handle, 2 );//    ,         
    $hex = bin2hex($contents );//     16    
            $string='';  
            for ($i=0; $i < strlen($hex)-1; $i+=2){  
                $string .= chr(hexdec($hex[$i].$hex[$i+1]));  
            }  
            $string = iconv("gb2312","utf-8", $string);