Short cuts: [Prev][Up][Next] [Return to Top]
蜥蜴と表計算と白血病:	- 日本語の憂鬱 -		1997.Dec.6-1998.Jun.13

 また昔話をしよう。ちょっと以下を見てね。

C:\NET\TST> crt -a
 ** 0 1 2 3 4 5 6 7 8 9 A B C D E F
 20   ! " # $ % & ' ( ) * + , - . /
 30 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
 40 @ A B C D E F G H I J K L M N O
 50 P Q R S T U V W X Y Z [ \ ] ^ _
 60 ` a b c d e f g h i j k l m n o
 70 p q r s t u v w x y z { | } ~

C:\NET\TST> copy con tt.txt
CON => C:\NET\TST\TT.TXT
蜥蜴
表計算
白血病
^Z
     1 file(s) copied

C:\NET\TST> debug tt.txt
-d
15A2:0100  E5 92 E5 8E 0D 0A 95 5C-8C 76 8E 5A 0D 0A 94 92   .......\.v.Z....
15A2:0110  8C 8C 95 61 0D 0A      -                          ...a..
-q

  ちなみにcrt.comはIBM-PC、Video BIOS int10hを使って00-FFまでのキャラクタを
 表示する(他にも色々できるけど)ツール。一度NiftyにUpしたけど、その後バージョン
 アップしたし、フォーラムも分裂したから今もあるのかは不明。
  少なくとも最新版は私の手元にしかない。どこに出したとて、今更意味はないという
 のが非公開の理由(欲しい、というメールが来れば出しますけど?)。

  まぁその。crt -aすると本当はもっと出力されるのだけど、ブラウザが発狂しても
 申し訳ないので危なそうな出力は削除してますってこと。debugのコマンド表示に
 しても然り。

  …え?debugなど起動したことがないって?あう。
  でも想像力ってものがあるでしょ?で、何をやってるかは明白でしょ?

  んでと。分かる人はもうとっくに分かっていることでしょうが、何が怖いって、
 日本語なのです。老獪なプログラマ(私は、その域に達してないと思うけど)が漢字や
 半角カナのファイル/フォルダ/ディレクトリ名を蛇蝎のごとく嫌う、というのには
 理由があります。

  debugのダンプリストを真面目に見て欲しい。E5ってあるでしょ?
 「はぁ。確かに。それが何か?」
  あのね。Formatした直後のFDを*物理的に*読むと何が読めると思ってるの?
 それはE5なのよ。
  つまり、蜥蜴.txtってのは、文字が20-7Fであると確信しているASCii諸国のOSに
 取ってはFormatしかしてない、無効データ領域であると判断されかねないという
 ことだ。
  実際、どこかの(今更指摘してもしょうがないので名を伏せる)メーカのMS-DOS
 では蜥蜴.txtが作れなかった、という話がある。先頭文字がE5なもんで、有効な
 ファイル名であると判断されなかったのだ。

  一方「表計算」は、ってこいつの場合5Cが問題なのだ。先のダンプリストだが、
 あ、もちろん改行を意味する0D 0Fは無視して眺めるのだよ。
  ASCii文字で5Chと言えば'\'。つまり、そーなんです。「表」という文字はS-JISを
 理解できるアプリに取っては1つの漢字文字だが、そうでないアプリに取っては'\'
 というパスの区切り文字を含んでいる、ということだ。

  英語なMS-DOSで「type 表計算.txt」とやって、「そんなディレクトリはねぇぞ」
 と言われたトラウマがあると、ピンと来る人も(希に)いるかもね。
  英語版LapLinkで日本語のファイルを転送してパニックした、という人もいる?
 (英語版なDOSに何故そんなファイル名がある?という疑問を持った方は健全な
  思考をしています。でも昔はそういう状況が平気で起こせたのです)

  さて。「白血病」。これが提示する問題は前者2つとはちと違う。debugのダンプ
 を眺めて欲しい。8C 8Cと続くだろう?つまり、S-JISな文字列というのはある
 バイトを見てそれが漢字の1 byte目か2 byte目か、という判断が不可能なのである。
  中途半端な日本語処理をしてるとここでひっかかる。
  S-JIS文字列は基本的に後ろからは処理できないのである。

#年寄りの話にここまでお付き合いいただき、誠にありがとうございました。
 この手の問題って、ASCii?EBCDIC?JIS?SJIS?それともEUC?って具合に話題が
 膨らむものです。Genericな対応が必要なら絶対に。
 最近ではUNICODE?という問いも加わりますか。

#日本語何て嫌いだぁぁ!
@ちなみにUNICODEですが、ハート文字が機種依存せずに使えるという一点だけは
 嬉しい。とだけ、言っておきます。それ以外は嫌いです。
 雪だるまの絵をも文字として採択するようなUNICODEな人の精神構造は私には
 理解不能なのです(なものを入れるぐらいなら……)

                                                                − 以上 −

Short cuts: [Prev][Up][Next] [Return to Top]
Note: Here is http://www.vector.co.jp/authors/VA006065/pc/nogoods.htm