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