僕がコンピュータを使うようになって、もう30数年が経過している。別に、だからと言って僕が Guru だという訳ではないのだけど、まあ世間で人が経験する問題には一通りぶちあたっているわけだ。
最近、某所である人の質問に答える機会があった。その方が、どうも文字コードとか改行コードに関して何もご存知でないような感じだったので、最初は愚痴のひとつでもここに書こうかと思ったのだが、僕の感じている不愉快さが増幅されるだけなので、それはやめておくことにする。その代わりに、僕の個人的経験を通して、文字コードと改行コードに関して書いておくことにしようと思う。
僕が日本語をコンピュータ上で本格的に扱うようになったのは、大学に入って PC98 を購入してからのことだった。大学に入った頃から、Macintosh というやつが大学生協に出現し、一種の憧れと妬みを感じながらも、そのあまりにすっきりとしたインターフェイスに羨望の眼差しを向けていたものだった。そのうち、大学3年になって、大学に NeXT が大量導入されて、僕は家で書いた文書を大学の NeXT で LaTeX を使って整形し、レーザープリンタでレポートを出力するようになったわけだ。そのときにぶち当たったのが、この文字コードと改行コードの問題だった。
ざっくり分けると、当時、コンピュータ上で日本語を扱う際に用いられる文字コードには、
と3種類あった(EBCDIC はどうした、とか言われそうだけど、僕はメインフレームはあまり使っていなかったので)。PC98 や Macintosh を使っている人は、それとは知らずに Shift_JIS を使っていたわけだけど、電子メールなどには JIS だった(これは今でも基本的には JIS であるべきなわけだが)し、ワークステーション等では EUC-JP を使うことがあったわけだ。
家でテキストファイルを書いてきて NeXT に持ち込もうとすると、まずはこの文字コードの問題に直面させられた。大学内で誰かが書いたユーティリティで、これの変換ができるようになったわけだけど、そのユーティリティの設定を見て、僕はこれが実は複雑怪奇な問題なのだと理解したのだった。
上の理屈で言うと、PC98 でテキストエディタで書いた文章を Mac に持ち込んでも、特に問題がないように思えるわけだけど、このやりとりをしていると、奇妙な現象に遭遇することになる。Mac で書いたテキストファイルを PC98 上で見ると、改行がなくなって、1行にずらーっとテキストが連なってしまうのである。どういうこと? と調べてみると、文字コードと別に改行コードというのがあって、これが、
- PC98 等の Microsoft 系システム: CR+LF
- Macintosh; CR
- ワークステーション: LF
と、これまた3種類存在するわけだ。つまり、
- PC98 等の Microsoft 系システム: Shift_JIS で CR+LF
- Macintosh; Shift_JIS で CR
- ワークステーション: EUC-JP か JIS で LF
……という状況だったのである。しかも、これらの間では
EOF コードに関しても仕様が異なることがあったために、1980年代末から1990年代初頭にかけて、コンピュータで日本語を扱う際には、何か変な文字が行末やファイルの最後に付いていないかどうか、常にチェックする習慣が身についてしまった。
やがて Unicode が登場して、この手のごたごたから解放される……と皆思っていたのだが、そう簡単にいく話ではなかった。改行コードに関しては、Mac は UNIX 流の LF に変更されたけれど、Windows では未だに CR+LF が使われている。それに、昔書かれたファイルを同じシリーズ上のコンピュータで扱おうとしても読めない、という問題に人々が頭を悩ませることになった。
UTF-8 同士でも問題が生じることがある。たとえば僕は Linux 上では BOM なしの UTF-8 を使うことが多いけれど、この通称 UTF-8N と呼ばれるフォーマットでファイルを Windows 上に持ち込んで TeX で処理しようとしても処理できない。何らかの手段(たとえば一度 TeraPad で開いて UTF-8 でセーブしなおすとか)で BOM を付加しなければ、同じ UTF-8 と言えども共用できないのだ。
で、結局何が言いたいのか、というと、この手の話は残念ながらまだしばらくは縁を切れない話であって、道具としてコンピュータを使う以上、この問題から背を向けることはできそうにない、ということだ。私は認めない! とか、私には分からないから何とかしろ! とか言う人がいるわけだけど、そういう人々のために使ってやれる程、僕の生活には余分な時間は満ち溢れていないし、僕以外の人にしたってその辺りは変わらないだろうと思う。
自分が忙しい、と殊更に主張する輩に限って、他人の時間の貴重さには無頓着で、時には横暴ですらある。自分に差し迫った事情があるんだ、と言っておけば、他人が自分の良いように情報を与えてくれるんだ、などと、勘違いも甚しい横暴さを振り回す輩に、愚かにも僕は手を差し延べてしまったりするわけだけど、そういう人の何パーセントかでも良いから、検索でこういう文書を読んで、僕のような愚かな回答者の手を煩わさないでくれることを切望する。いや本当、暴言吐きたくなることもあるんですよ。ええ。