- 締切済み
¥マークを出力したいがバックスラッシュが表示される
PHPで「\」(半角)を出力したいが、\\で改行できません。 ブラウザではバックスラッシュ記号が表示されます。EUC-JP環境では問題なかったのですが。。 ・サーバ CentOS5.4(文字コードutf-8) ・テキストエディタ 秀丸(文字コードutf-8)で記述し保存しサーバにアップロード ・ブラウザ(IE6) phpでヘッダー出力しているのでブラウザのエンコードは UTF-8となっており、日本語は文字化けしません。 ****ソースコード*** <?php //ヘッダー出力 header('Content-Type: text/html; charset=utf-8'); ?> <html> <head> <title>テスト</title> </head> <body> <!-- PHP --> <?php echo 'この商品は\\100です。<BR>'; //←これだとバックスラッシュ echo '改行します。\n改行しました。<BR>'; //←これだとバックスラッシュnと表示される echo '¥'; //←これなら¥が出力される ?> </body> </html> utf-8文字コードでは\\では駄目なんですかね? ちなみにブラウザ→ソース表示を見るとhtml内には \という文字は帰ってきていますが、ブラウザの表示が utf-8では「\」は「\」として表示されないのでしょうか? 助けてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- vancunt
- ベストアンサー率33% (2/6)
utf-8では、IEの場合font-familyのデフォルトが英字フォントになってしまいます。 したがって、\はバックスラッシュとして表示されます。 CSSでfont-familyを日本語のものに設定してみてはいかがでしょう? ちなみにFirefoxの場合はFirefoxで設定されているフォントがデフォルトになります。
- kotoby2003
- ベストアンサー率15% (280/1754)
UTF-8もPHPも関係ないでしょう。 ¥に置換すればよいのでは。
- himajin100000
- ベストアンサー率54% (1660/3060)
http://www.mew.org/~kazu/doc/newsletter/6.html U+005Cは文字集合依存で、JIS X 208等を元にすることの多い日本語フォントでは円マークのグリフ、欧米用のフォントではバックスラッシュのグリフになってます。 >¥ ¥ではなく¥です。(ブラウザが勝手に修正している) 十進数165番、つまりU+00A5でこれは似たように見える別の文字なんです。 http://www.w3.org/TR/html4/sgml/entities.html
補足
回答ありがとうございます。 具体的には以下のようになり、統一できないものかと 悩んでいます。 windows環境で表示 (1)IE6(エンコードutf8)の場合 \\→IE上ではバックスラッシュ表示になる ¥→IE上では\と表示されOK (2)Firefox3.5.5(エンコードutf8)の場合 \\→Firefox上では\と表示されOK ¥→Firefox上では¥がそのままが表示され話にならない。 この問題はどう回避すべきですか? というのが質問の意図です。 具体的な対処法を教えてください。よろしくお願いします。