公園のベンチでひとりごと。

アクセスカウンタ

zoom RSS 機種依存文字と波線

<<   作成日時 : 2008/02/26 12:39   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

最近は、自分だけが使うプログラムを作ることがほとんどだったので、全然気にしていなかったのだけれど、「機種依存文字」の問題ってやっぱり残っているというか、さらにややこしくなっていることに気付かされた。


もともとはパソコン通信が流行りはじめたときに、機種独自の文字…PC-9801でのみ正しく表示される文字とか、逆にMacintoshでのみ正しく表示される文字があるという問題が表面化してきたもので、一時は機種依存文字を使用して書き込みを行うと注意しまくる人とかもいたものだ。今風にいえば粘着っぽい感じで。

という昔話はいいとして、まあ自分だけで使っている分には別にいいやーって全く気にせずプログラムを組んでいたのだが、PerlやPHPでXMLファイルを解析するようなプログラムを組もうとして問題が出てきた。
XMLファイルの処理って、文字コードがUTF-8で書かれているXMLファイルしか処理してくれない言語・ライブラリがほとんどなので、まあそこはそういう風に処理するとして、でもいろいろと他の部分との兼ね合いもあって、最終的な出力(HTML)はEUC-JPで行うようなコードを組んでいた。
となると、UTF-8とEUC-JPとの文字コード変換を行う必要がでてくるのだが…なんか、うまく変換できない文字が結構ある。いわゆる“○囲み数字”とか、ローマ数字とか。あと、一部の数学記号。これらは、いわゆる「機種依存文字」なのだ。

他の文字はともかく、ローマ数字などはうっかりと元データに使っちゃってる可能性があるので、いろいろ試してみたところ、PHPは「EUC-JP」じゃなくて「eucJP-win」を文字コードとして指定すればほとんど大丈夫なことが分かった(Perlは、Shift-JISコードになるけど「shiftjis」じゃなくて「cp932」を使う)。

でもこれって本質的な解決じゃあないので、なんか気持ち悪い。ということで、結局元データ(XMLファイル)を調べて化けそうな文字を修正。

しかし、自分だけで使う環境で、機種依存文字に悩まされるとは思わなかった。

そして、もう一つ問題が。
波線。「〜」って文字。普通にWindows使っていると、“から”で変換できるので「〜」を使うんだけど、Unicodeにはよく似た文字「〜」というのがある。WindowsXPでMS Pゴシックだと、前者は綺麗な波線、後者はちょっと文字がザラっとしているように見える(他の環境では分かりません)。困ったことに、この文字はJISの範囲には存在しない。
で、EUC-JP←→UTF-8で文字コードを変換している最中に、前者の「〜」が化けることがあって…。ああ面倒だ。なんでこんなに苦労するんだ。Unicodeなんて嫌いだ。


# さらに話はそれるけど、フリーのファイルバックアップソフト等を使ったら、なぜかエラーが出る…という場合、この「後者の波線」がファイル名に含まれたファイルがないか調べてみるといいかも。上に書いたように、この文字はJISの範囲には存在しないので、Shift-JISにしか対応していないプログラムでファイルをコピーしようとするとエラーになってしまう。iTunes等のソフトで、音楽の曲タイトルをCDDBから取得して、それがそのままファイル名になる場合、曲タイトルに結構な確率で「後者の破線」が含まれてるんで、そういうファイルが出来てしまうんだよね(実体験)。



テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
機種依存文字と波線 公園のベンチでひとりごと。/BIGLOBEウェブリブログ
文字サイズ:       閉じる