ここでGDにおける中国語表示の原理についてお話します。読んだ後に書き留めてもいいと思います。
PHP の GD ライブラリは実際には中国語をサポートしていますが、UTF-8 形式のパラメータで渡す必要があります。次の小さなプログラムを試してみてください。
「中国語OK」という文字が表示されたグラフィックが表示されます。 (
UTF-8: Unicode Transfer Format 8 は Unicode と互換性のある表現方法です)
$im = imagecreate ( 400,300);
$bkg = ImageColorAllocate($im, 0,0,0);
$clr = ImageColorAllocate($im, 255,255,255); / 98/95 の場合 "c:/windows/fonts/simhei.ttf";
$str = chr(0xE4).chr(0xB8).chr(0xAD).chr(0xE6).chr(0x96).chr( 0x87 )."OK";
// UTF-8ImageTTFText($im, 0, 10, 20, $clr, $fnt, $str);
ImageDestroy( $ im);?>
固定の中国語文字列を表示したいだけであれば、WordやSitong Cubeなどのソフトで表示する文字をUTF-8形式に変換してプログラムに貼り付けることができます。ユーザー入力に基づいて対応する中国語の文字を動的に表示したい場合は、中国語の文字の内部コードを UTF-8 形式に変換するという問題を解決する必要があります。
UNIX/Linux での中国語処理についてはよくわかっておらず、Unicode 内部コードを使用している場合は、Unicode を UTF-8 形式に変換する必要があります。
GBK 内部コードが Win95/98 のように使用されている場合は、まず Unicode に変換し、次に UTF-8 形式に変換する必要があります。
GBK-Unicode の変換に関して、私は非常に愚かな解決策を使用しました。それを皆さんに議論していただくためにここで提案します。誰もがよりシンプルで効率的な解決策を考え出すことを願っています。 | 最初にこの小さなプログラムを使用してすべての GBK 文字を表示し、それを Word で Unicode に変換します。この文字列に従って、各文字を対応する Unicode 値に変換します。 Unicode を UTF-8 に表現するプロセスは、Unicode 上の変換プログラム cvtutf.c、cvtutf.h を参照します。
www.bkjia.com