« Macでportforward設定 | メイン | FreeBSDのディスクをWinにマウント »

UTF-8のバックスラッシュは¥ではない

多分、誰もが知っていることなのでしょうけれど、私は1時間くらい悩みました。
DreamWeaverを使ってUTF-8のソースコードでPHPのソースを書いていました。
文字列を普通に例えば
$str = "He said ¥"Where is the bus stop No.32?¥" I answerd ¥"I don't know, Sir.¥"
¥n";
などと変数代入を記述して動かすと、この部分でシンタックス・エラーになってしまいます。
なにか書き方が間違っているのだろうと思い、かなり長い時間コードを精査し、書き直してみたりしました。
やっとわかったことは以下のことです。

まず、ソースコードの文字コードを シフトJISやEUCにすれば、この部分は問題なく通ることに気がつきました。ということはシフトJISやEUCでは¥はバックスラッシュなのですが、UTF-8には¥ではない本当の\があるのではないかとやっと思い至るわけです。
Macを使っていたのでMacでのバックスラッシュ入力をgoogleしてみました。
Option+¥キーでバックスラッシュ入力であるということを、はじめて知りました。
しかし、DreamWeaverのコードビューで実際にOption+¥を入力してみても、表示は\ではなく、¥が入力されます。ここでまたもや悩みます。「Option+¥キーでバックスラッシュ入力である」ということ自体が嘘なのか?しかし、とりあえずエスケープ文字としての¥を全部Option+¥キーで置き換えてみましたところ、無事動くようになりました。
¥が表示されてしまうのはOsakaフォントが\を¥で表示しているからでした。コードビューのフォントを環境設定で欧文フォント(例えばCourier)に変更すれば、\がちゃんと表示されるようになります。
とんだことで時間を浪費してしまいました。

トラックバック

このエントリーのトラックバックURL:
http://www.smallmake.com/cgi-bin/mt/mt-tb.cgi/47

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2007年10月25日 14:30に投稿されたエントリーのページです。

ひとつ前の投稿は「Macでportforward設定」です。

次の投稿は「FreeBSDのディスクをWinにマウント」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type 4.1