Blob Blame History Raw
	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 を優先するようになります。