• ベストアンサー

imageTTFTextで"~"だけ文字化けします

宜しくお願い致します。 OSはWindows、言語はPHP5、WebサーバはApacheで開発を行っております。 PHPで画像を動的に作成していますが、文字の出力でimageTTFText関数を使うと"~"の文字だけが"・"と表示されてしまいます。 その他の日本語・記号は正常に出力されるのですが、"~"のみ化けてしまいます。 対応がお分かりになる方、是非ご教授お願い致します。

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

  • ベストアンサー
回答No.1

質問者の方と同じ環境が無いので、あてずっぽうですが、もし解決になればと思って投稿します。 テキストをUTF8に変換して、imagettftext関数に与えていますよね? 「~」をUTF8に変換したときに、\xe3\x80\x9c(WAVE DASH U+301C)に変換されているのが問題なのではと推測しています。 これが、\xef\xbd\x9e(FULLWIDTH TILDE U+FF5E)であれば、期待通りに表示されると思います。 $text = "\xef\xbd\x9e"; imagettftext(*, *, *, *, *, *, *, $text); // *は適当に値を入れて下さい とするとどうでしょうか? あるいは、フォントを変えると、WAVE DASHを出力できるかもしれません。 外していたら御免なさい。。。

shelly11
質問者

お礼

ありがとうございました!! fdsjaklfjasさんの推測通り、UTF8に変換し文字を出力しておりました。 教えて頂いたとおりに "\xef\xbd\x9e"としてみた所、"~"が正常に衆力されておりました。 本当にありがとうございます、これで開発を先に進められます。

関連するQ&A

専門家に質問してみよう