Blame docs/README.JPN

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