青空切手市

2006/12/20(水)21:03

文字化けとの戦い(PHP-mi編)

macしか使えない私(31)

本日2件目の日記です。 前回までは図書館の本に頼っていた私ですが、とうとう自前で資料を買って参りました。        「MAMPではじめるMac OS X サーバサイドプログラミング 」 近所の本屋さんで買ったので、楽天ブックスのレビューが書けません(笑) タイトルにMAMPとつく本は、この本しかなかったような気がします。 何せ、mac専用。売れる相手が少ないです。 (シェアが小さいって、こういうとき悲しい。) 中身を見れない人のために少し説明しますね。 この本は、MAMPで初めてPHPプログラミングをする人向けです。内容は、PHPの解説がほとんどです。データベースの解説は最後の章のみ、しかもその半分がSQLiteで、残りの半分がMySQLとphpMyAdminについての説明です。 この本では、開発環境としてOS標準のXcodeを使用しています。また、文字コードはUTF-8で統一しています。 さて。いよいよ本編。 <文字化け その3> 私もUTF-8で統一したかったので、まずは前回の本のサンプルスクリプトから、HTMLのメタタグをUTF-8に直し、PHPさんにも「UTF-8でよろしく!」と根回ししました。そして、スクリプトファイルの文字コードをEUCからUTF-8に変更して上書き保存。ちなみに私はXcodeを使った事が無く、普段からmiというエディタを使っているので、いつものmiで全ての書き換えを行いました。 ところが、このスクリプトを実行すると、今まで戦って来た「テーブルの中身の文字化け」は起こらないのですが、かわりに、あちこちに「円マークとn」が出現するのです…???  新たな敵、出現。 「円マークとn」というのは、本によると「改行コード」を表しているはずなのですが…。EUCで実行していた時には、予定通り「改行」となって機能していたはずなのに、ユニコードに変更したとたん、「改行」に変身できなくて、裸の「円マークとn」がそのまま出て来てしまったようです。 そういえば昔から、バックスラッシュと円マークは思い通りに出せなくて、どっちかを出そうとしたら、もう一方になったり、みたいな事が何度かあったっけ…。今回も、どうもそれくさい。 で、またまた検索の旅に出たところ、とても関係のありそうな記事が、今日の本の作者さん(掌田津耶乃氏)のサポートページにありました。 しかしこれ(「※半角の¥記号について」の一文)が、謎解きみたいな変な文なのです。私の環境(Safari1.3.2)から見ると、半角バックスラッシュがいっぱい書いてあるみたいなのですが…。想像なのですが、この文は、書いた時は「半角円マーク」のつもりだったものが、今の私の環境から見ると、全部「半角バックスラッシュ」になってしまっているのではないかと思います。 (そう考えないと、文章の意味が通じません。) それで、私なりにこの文章を翻訳・解釈してみました。 つまり、「半角バックスラッシュ」が「半角円マーク」で表示されてしまう環境があると。その世界では、改行コードの事は「半角円マークとn」で表します。この本も、その書き方で印刷されています。しかし、Mac OS Xのユニコード完全対応アプリケーションに限っては、「半角バックスラッシュ」と「半角円マーク」は全く別の文字である。その場合は、改行コードは「半角円マークとn」ではなくて、「半角バックスラッシュとn」でなくてはならない。「半角バックスラッシュ」を入力するには、英数にしておいて、オプションキーと円マークを押す。 (JISキーボードなら、たぶん「へ」の右となり。) 私の文字化けも、どうやらこれが原因のようです。 UTF-8に変えた事で、「半角円マークとn」が改行コードではなくなり、そのままの姿を現して来たようです。ちなみに私が使っているエディタのmiはバージョン2.1.5で、ユニコードには完全に対応していないバージョンです。opt+円マークの入力では文字化けをし、カタカナのヌが出て来ます。 …というわけで、「半角円マークとn」を大量発生させたサンプルスクリプトは、ユニコード完全対応アプリケーションであるTextEditで開き直し、「半角円マークとn」を全て「半角バックスラッシュとn」に直す事により、正常に表示されることとなりました。   めでたし。めでたし。 余談: TextEditですが、もともとUTF-8で保存してある文章を、ダブルクリックやD&Dで開くことができません。TextEditのファイルメニューから「開く」を行い、手動でUTF-8を指定してやらないと、自動認識ができないみたいなのです。はっきり言って、おバカだと思います。うちはまだOS10.3なのですが、10.4でも同じなのかしら?

続きを読む

総合記事ランキング

もっと見る