• 締切済み

¥マークを出力したいがバックスラッシュが表示される

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 '&yen'; //←これなら¥が出力される ?> </body> </html> utf-8文字コードでは\\では駄目なんですかね? ちなみにブラウザ→ソース表示を見るとhtml内には \という文字は帰ってきていますが、ブラウザの表示が utf-8では「\」は「\」として表示されないのでしょうか? 助けてください。

みんなの回答

  • vancunt
  • ベストアンサー率33% (2/6)
回答No.3

utf-8では、IEの場合font-familyのデフォルトが英字フォントになってしまいます。 したがって、\はバックスラッシュとして表示されます。 CSSでfont-familyを日本語のものに設定してみてはいかがでしょう? ちなみにFirefoxの場合はFirefoxで設定されているフォントがデフォルトになります。

  • kotoby2003
  • ベストアンサー率15% (280/1754)
回答No.2

UTF-8もPHPも関係ないでしょう。 &yen;に置換すればよいのでは。

回答No.1

http://www.mew.org/~kazu/doc/newsletter/6.html U+005Cは文字集合依存で、JIS X 208等を元にすることの多い日本語フォントでは円マークのグリフ、欧米用のフォントではバックスラッシュのグリフになってます。 >&yen; &yenではなく&yen;です。(ブラウザが勝手に修正している) 十進数165番、つまりU+00A5でこれは似たように見える別の文字なんです。 http://www.w3.org/TR/html4/sgml/entities.html

tastykk
質問者

補足

回答ありがとうございます。 具体的には以下のようになり、統一できないものかと 悩んでいます。 windows環境で表示 (1)IE6(エンコードutf8)の場合 \\→IE上ではバックスラッシュ表示になる &yen→IE上では\と表示されOK (2)Firefox3.5.5(エンコードutf8)の場合 \\→Firefox上では\と表示されOK &yen→Firefox上では&yenがそのままが表示され話にならない。 この問題はどう回避すべきですか? というのが質問の意図です。 具体的な対処法を教えてください。よろしくお願いします。

関連するQ&A