gd ライブラリで日本語文字列を使う上での注意事項 山賀正人 (ma@yama-ga.com) gd-1.7.0 からはそのままで gdImageStringTTF() に対して SJIS encoding のフォントが使用できます。 ※ Unicode encoding のフォントに対しては日本語文字列を UTF-8 で 指定すれば日本語が表示できます。 つまり gdImageStringTTF() で SJIS encoding のフォントを指定すると 文字列は無条件に日本語であると解釈され、漢字コード (EUC, SJIS, 7bit JIS) が自動判別されて適切に処理されます。 更に UNICODE encoding のフォントに対しても JIS 系の日本語 (EUC, SJIS, 7bit JIS) を使用する場合は、コンパイル時に -DJISX0208 を付けてコンパイルしてください。 こうすると gdImageStringTTF() で指定された文字列に ASCII 以外の文字があると 無条件に日本語文字列であると解釈され、漢字コードを自動判別後に 適切に処理されます。 ただしこの場合は UTF-8 の日本語文字列を扱えなくなりますので、 ご利用の環境等に応じて -DJISX0208 を付けるか否かを決めてください。 漢字コードの変換に OS 付属の iconv() を使う場合は CFLAGS に -DHAVE_ICONV を付けてコンパイルしてください。 この場合に -DHAVE_STDARG_H と -DHAVE_ERRNO_H も付けておくと 漢字コード変換の際にエラーが発生した場合に適切なメッセージを 表示するようになります。 ☆ EUC か SJIS か判別できなかった場合の漢字コードの判別方法 (1) 環境変数 LC_ALL, LC_CTYPE, LANG をこの順番でチェックする (2) 環境変数からも判別できなかった場合は UNIX ならば EUC、 Win32 ならば SJIS と見なす コンパイル時に -DSJISPRE を付けてコンパイルすれば、UNIX であっても SJIS を優先するようになります。