これ何て呼びますか

PHPで\マークが/に変換されるのですが・・・・どうしてなんでしょうか?

A 回答 (4件)

¥マークは ASCIIコードで 5c(16進)です。



最初に、¥マークを指定したのは、たぶんエディタか何かでphpを記述し、その中に¥マークを入力したのだと思います。
この時エディタのフォントは5cを¥で表示するフォントだったため、¥で表示されました。

次に、phpを実行した場合、ブラウザで見たと思いますが、このときブラウザのフォントは 5cを\で表示するフォントだったため、同じ5cのコードが\に変わってしまったように見えたのだと思います。

試しに、HTMLで以下の記述をして、ブラウザで見てみて下さい。
<html>
<body>
<span style="font-family: 'MS Pゴシック'">\\\</span><br>
<span style="font-family: sans-serif">\\\</span><br>
</body>
</html>

同じ¥ですが、表示が違っているはずです。
    • good
    • 0

編集しているときのOSは何ですか?



MacOS Xでは、一部のエディタでは¥(の半角)(文字コード5C=十進92)とバックスラッシュは違う文字として入力されます。
UTF-8で入力すると、デフォルトではバックスラッシュ(文字コードA5=十進165)が使われるのが多いと思います。

エディタの設定でバックスラッシュを使わない設定にするか、
文字コードから作成した文字を定数として使うようにすると良いと思います。

ちなみにこのBBSでも、¥の半角をMacから入力すると実体参照になります。
¥

この回答への補足

WINXPです。

補足日時:2008/04/19 23:27
    • good
    • 0
この回答へのお礼

みなさん、ありがとうございます。ようやくそういうことかとわかりました。

お礼日時:2008/04/19 23:26

\と\は同じです。

    • good
    • 0
この回答へのお礼

同じですか・・・参考書には「¥」マークを出すには「¥¥」というエスケープシーケンスの形でコードを書けば良いみたいなことを書いています。
しかしPHPでその「¥¥」と書いても何だか意味がなく\\と出力されます。¥マークは出せないのでしょうか?またエスケープシーケンス通りに表記されないのはどうしてでしょうか?「$」でも「¥$」と書いても「$」と出力されます・・・・ですので、ちょっと混乱しております。

お礼日時:2008/04/11 19:07

「/」じゃなくて「\」じゃない?


だとしたらそれは普通。
「バックスラッシュ」で調べてごらん

http://www.google.co.jp/search?hl=ja&lr=lang_ja& …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!