• ベストアンサー

文字化け

phpソースだけなら正しく表示できるのですが、 htmlソースを加えるとphpソースの部分が文字化けし、画像が表示できません。どうしてなのでしょうか? 画像を扱わないプログラムは、文字化けしないのですが、GDで画像を扱うと文字化けしてしまいます。 文字化けする↓ <html><head><title>sample</title></head> <?php $width=$_GET{'wid'}; $height=$_GET{'hei'}; $red=$_GET{'red'};$green=$_GET{'gre'};$blue=$_GET{'blu'}; $text=$_GET{'tex'};$size=$_GET{'siz'}; $red1=$_GET{'red1'};$green1=$_GET{'gre1'};$blue1=$_GET{'blu1'}; $angle=$_GET{'ang'};$x1=$_GET{'x1'};$y1=$_GET{'y1'}; header("Content-type: image/jpeg"); $im = imagecreate($width,$height); $bground = imagecolorallocate($im, $red,$green,$blue); $text_c = imagecolorallocate($im,$red1,$green1,$blue1); imagettftext($im, $size, -$angle,$x1,$y1, $text_c,"Century",$text); imagepng($im); ?> </form></body></html>

質問者が選んだベストアンサー

  • ベストアンサー
  • umioyo
  • ベストアンサー率66% (35/53)
回答No.2

PHPの出力とHTMLの出力の文字コードが異なっているのでは。 HTML側で <meta http-equiv="Content-Type" content="text/html; charset=文字コード"> と、PHPの出力をあわせてやればいいんじゃないでしょうか。

noname#13767
質問者

お礼

文字コードが違いました。 ありがとうございます。勉強しますね。

その他の回答 (1)

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.1

pngで日本語textをはき出すときは、unicodeにしないといけません。 textは日本語じゃないですか? もしそうなら $text=mb_convert_encoding($_GET["tex"],"UTF-8","auto"); としてみてください。

noname#13767
質問者

お礼

ありがとうございます。 質問の書き方が足りなかったですね。 でも、参考になりました。

専門家に質問してみよう