• ベストアンサー

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

  • 文字化けについて

    現在PHPでの開発をおこなっています。 環境はWindows2000、Webサーバー『APACHE』、PHP『php-4.2.0-Win32』を使用しております。 Mysqlも接続でき、Web上でも表示ができるようになったのですが、文字化けを起こしてしまいます。以前カタカナの『ソ』が文字化けを起してしまったので、その時は『php.ini』ファイルの ・output_bufferring = Off ・default_charset = EUC-JP ・mbstring.http_input = auto ・mbstring.http_output = EUC_JP ・mbstring.internal_encoding = EUC_JP ・mbstring.substitute_character = none ・register_globals = On と7箇所設定を変えました。自分で作成したソースもEUCで保存してるんですけど、 文字化けが起こってしまいます。 どうしたらよろしいでしょうか? お分かりになる方がおられましたらよろしくお願い致します。

    • 締切済み
    • PHP
  • phpとoracleを用いたシステムでの文字化け

    phpとoracleを用いたシステムでwebサイトを構築しているのですが、 ブラウザからアクセスしページ表示した際に、全角文字が文字化けしてしまいます。 ◆環境 webサーバ:apache, php, oracleClient, PDO_OCI DBサーバ:oracle DBデータアクセス方法:PDO ◆事象の詳細 文字化けといっても必ず ???? とクエスチョン続きで表示されます。 上記webサーバのコマンドラインでphpのバッチを実行したところ、 コマンドライン上では正常に全角文字が表示されます。 まったく同じバッチをwebブラウザからhttpでアクセスを行ったところ、 文字化けしてしまいます。 ブラウザでの表示が悪いのではと思い、 phpのバッチ実行時に結果をテキスト出力させる処理を追加したのですが、 コマンドラインで実行した際は正常に出力され、ブラウザでアクセスした際は内容が文字化けして出力されました。 上記事象からアパッチが影響してるのではと考えられるので、 webサイトごと個別のhttpd.confの設定ファイルに NLS_LANG を設定したのですが、 結果は変わりませんでした。 文字コードの指定がない(正しくない)から文字化けするというよりは DBサーバから取得する文字列をどう受け取って(扱って)いいのかわからないという感じがします。 何か解決策等、わかる方がいましたらご教授いただけますでしょうか。

    • 締切済み
    • PHP
  • 文字化けについて

    基本的な質問で申し訳ありませんが、xamppで一括インストールをしてapacheサーバを立てて C:\apachefriends\xampp\htdocs\web_cartにphpファイル、htmlファイルをアクセスしたところ、実行されているのですが文字化けしており、ブラウザの「表示」→「エンコード」を見ると西ヨーロッパ言語(ISO)になっています。ここの設定は日本語(シフト JIS)にしたいのですが、どこを設定したらよいのでしょうか? どなたかアドバイスお願いします。

    • ベストアンサー
    • PHP
  • Apache 文字化け

    以下の環境で、WebブラウザをJSPで作成し、入力した日本語をServletから出力させるプログラムを作成しています。 【環境】 OS:Windows XP Webサーバ:Apache 2.2.4 サーブレット、JSPコンテナ:Tomcat 5.5.23 コネクタ:mod_proxy_ajp 【事象】 Webブラウザより、日本語を入力⇒クエリ送信⇒結果画面をした結果、Webブラウザから入力した値のみが文字化けします。 JSP側でもharset=Shift_JISを指定していますし、Apacheのhttpd.confでもAddDefaultCharset offを設定しています。なんでしょうか。。。わかりません。アドバイス宜しくお願い致します。

  • サーバの字が文字化けします。

    redhat9+apache2でサーバを構築したのですが、 サーバ上でのファイル名が文字化けしてしまいます。 (apacheはソースからインストールしました) ツールバーの表示からエンコードを変更すれば 正しく表示されるのですが、 できれば最初から、文字化けしないようにしたいです。 何度か調べて、httpd.cnfの #AddDefaultCharset~や LangagePriority、 また、php.iniの mbstringなどを訂正したのですが、 変わらず西ヨーロッパ言語のままです。 わかる方いらっしゃいましたら よろしくお願いします。

  • アパッチ導入後の文字化けについて

    Windows2000にアパッチをインストールし、 なんとか、動いているんですが、1つだけ困っている事があります。 アパッチサーバー上(root)のファイルをIEで参照すると、 かならず、文字化けしています。 (rootのファイルはデフォルトhtmlではないです) エンコードが必ず「西ヨーロッパ」になっていて 参照の都度エンコードを「日本語」に変更しています。 これって、アパッチ側の問題だと思っているんですが (他のWebを参照した時はちゃんと日本語で表示) どなたかお分かりになる方はいらっしゃいますでしょうか? よろしくお願い致します。

  • 文字化けします

    win2000+アパッチでサーバーを立てています。 このサーバーから表示したHTMLファイルが西ヨーロッパ言語へ文字化けします。 エンコードでシフト_jisを指定すれば直ります。 <meta>でコードを指定してましたが改善されません。 よろしくお願いします。

  • サーバーにアップすると文字化けする

    PHPで作成したWebサイトをブロバイダーのサーバーにアップして表示すると文字化けします。 ローカル環境では、php.iniの設定で、エンコードをUTF-8としていますが、「サーバー環境はWindowsサーバをベースとしており、WEBサーバはIIS(7.0)となるため、各サイトごとにphp.iniファイルを設定することはできない。 (サーバ内にアップロードされてもPHPから読ませることはできません。)」 とブロバイダに言われました。 どうしたらよいのでしょうか? ちなみに、ローカル側のエンコードをjisにすれば問題ないのかもしれませんが、いまいちphp.iniの設定に自身がないのです。 今の状態は以下の通りですが、どこをどう変更すればよいのでしょうか? よろしくお願いします。 **************************************************** default_charset = "UTF-8"       出力文字コード mbstring.internal_encoding = UTF-8  PHP内部の文字コード mbstring.http_input = auto       HTTP入力の文字コード mbstring.http_output = pass      HTTP出力の文字コード mbstring.encoding_translation = Off  HTTP入力の文字コードの自動変換 ****************************************************

    • ベストアンサー
    • PHP
  • phpMyAdminでの文字化け

    こんにちは。 PHPとMySQLを使用するために Apache HTTP Server 2.2.6 MySQL Server 6.0 phpMyAdmin 2.11.2.2 をインストールしました。 しかし、phpMyAdminにログインすると、おそらく日本語になっているであろう部分が全て文字化けしてしまいます。 エンコードでその都度日本語を選択すればよいかと思い、とりあえずデータベースにテーブルを作成しようと思いエンコードしたところ何も表示されなくなってしまいました。 恐らく私がしている質問は初歩的な設定が原因だと思いますが、どなたかわかる方がいらっしゃいましたら解答いただけると助かります。

    • ベストアンサー
    • MySQL
  • 携帯サイトで稀に文字化けしてしまいます。

    PHP+MySQLで携帯サイトを構築しています。 DBと各ファイルのエンコードはEUC-JPで、携帯対応するために 出力のみhtaccessにてSJISにしております。 また、入力フォーム等もあるためhtaccessに下記を記述したところ、 基本的には問題なく表示するのですが、更新を繰り返すと5~10回に1回ほど文字化けを起こします。 #htaccess内の記述--- php_value output_handler mb_output_handler php_value default_charset Shift_JIS php_value mbstring.language Japanese php_flag mbstring.encoding_translation 0 php_value mbstring.http_input auto php_value mbstring.http_output SJIS php_value mbstring.internal_encoding EUC-JP php_value mbstring.substitute_character none #------------------- それも、現時点で確認している状況では ・db.phpというファイル内でDBからデータを取得し、その中でdumpした場合はまったく文字化けせずSJISで表示 ・index.html内に日本語を記述しても文字化けなくSJISで表示 ・main.php内でいろいろなファイルをrequire_once等していると文字化けが発生 (具体的には日本語部分が全て???になったり空白になったりする ソースを開いてエンコードを変えても変化無し) 毎回正常だったり毎回文字化けしていれば分かるのですが、ごく稀にそういう状況が起きてしまっているので困っています。 どなたか知恵をお貸し下さい。 サーバ環境 レンタルサーバ Kagoya Internet Routing(共用) Apacheバージョン Apache/1.3.37 MySQLバージョン 5.0.33 (Ver 14.12 Distrib 5.0.33) PHPバージョン 5.2.5

    • 締切済み
    • PHP
このQ&Aのポイント
  • ゲームパッドJC-U4013Sのボタンについてトラブルが発生しており、困っています。
  • 右側のボタンが本来の配置から入れ替わり、設定の修正方法がわかりません。
  • ボタンキャリブレーションができないゲームでは、PC上でボタン設定を変更する方法があるのか教えてください。
回答を見る