[PHP-users 12565] Re: mb関数

Youichi Iwakiri php-users@php.gr.jp
Wed, 15 Jan 2003 13:55:14 +0900


いわきりです

S.Okazakiさんの<20030115131225.1C24.OKAZAKI@jp-hb.com>から
>このtiffを出力するコードも、日本語が完全に文字化けしてしまい
>使い物になりませんでした。
>等々…情けないですが、バージョンダウンと言うネガティブな解決
>をしようと思います。

先日の私のメールが、混乱の原因でなければよいのですがと
思いつつ、

imagettftext()は、textがUTF-8で渡される事を期待しています。
先程のソースは、mb_convert_encodingでUTF-8にされていますね。

この場合は、libgdの作成時に-DJISX0208をコンパイルオプションとして
渡しては、いけません。

textを、EUC-JPもしくは、SJISのままimagettftext()に直接渡した
時に、UTF-8に変換させるための指示です。

<?php
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
$im=imagecreate(170, 50);
$red=imagecolorallocate($im, 255, 0, 0);
$blue=imagecolorallocate($im, 0,255, 255);
$white=imagecolorallocate($im, 255, 255, 255);
imagerectangle($im, 0, 0, 169, 49, $blue);
$f = "/usr/X11R6/lib/X11/fonts/TrueType/kochi-gothic.ttf";
$txt = "あいうえおかきくけお";
// $txt=mb_convert_encoding("$txt","UTF-8");             コメントアウトするとどうですか?
imagettftext($im, 25, 0, 0, 35, $white, $f, $txt);
header("Content-type: image/png");
imagepng($im);
imagedestroy($im);

?>

-- 
Youichi Iwakiri