fj.*の歩き方 (1996 Apr) (4.2)
・目次 ・前のペーヂ ・次のペーヂ

4.2「表現形態の問題」

博:えへん。漢字コード等の具体的な話、特に内部コード、表示コード等は、各
  サイト、各部署によって事情が違います。ですから、各サイト、各部署ごと
  に教育していただきたい。

本:おや、これって、もしや。手抜きではないかな。

博:なにせ、Netnewsでは、ニュースシステム内はEUCだけど、外に送る時はJISに
  しており、さらに、いわゆるShift-JISで表示するパソコンでユーザが読む、
  といったこともしばしば存在するわけです。だから、コード系の話は、サイト
  ごと、システムごとに違ってるわけで、そこでうまくいくようにして下さい。

本:早い話が、ここでは全部の場合を説明するのが面倒だからやらないという話。

博:そうだな、だから、一般的な話をさせてもらう。実際にだ、記事によっては、
  例えば「!V#f#j$NJb$-J}!W$H$$$&$N$O$H$F$b$$$$K\$G$9」とか書いてあるな。

本:あ、これ知ってる、いわゆる「コード化け」ってやつですよね。全文がこれ
  って時もあるけど、signature等でおこるんですよね。自分で気付かんのかな。

博:いや、気付いてない場合と、気付いてもどうしたらいいかわからん場合とか、
  まあいろいろあるわな。まあ、ちゃんとテストしておけば大丈夫であろうな。

本:あとですね、よくあるんですが、パソコンとかワープロで、JISの表にない字
  があるでしょ?あれを使われると、なんというか文字化けすることがあるん
  ですよ。丸数字とか、罫線とか、そんなのってのが結構多いんですよねぇ。

博:うむ。自分の所で読めているからといって、相手で読めるかどうかはわから
  んものだ。まあ、練習したりテストしたり、また注意できるものは意識して
  注意し書くようにしておくにしかずである。とはいえ、なかなかそうはいか
  んのだな。だから、他の人から指摘をうけたら、「俺のとこでは問題ないの
  にいちゃもんつけるな」とか「こっちが主流だ数が多いんだ」などと怒りま
  くらずに、もっと素直に、うまく表示されないという事実を認識し、まあ、
  その後で投稿する場合に役立てていくしかないな。その後が重要なんだな。

本:そうですよね。それに、注意する人の方も、「俺様の読めないような、しか
  も、JISの表にない間違った文字を使ったな!さあ、謝れ謝れ、謝罪しろ!」
  なんて調子で言わないでほしいもんですね。なにせ、自分の所ではおかしく
  表示されない人なわけですから、強い調子で言えば言うほど、いちゃもんを
  つけられた気になって、かたくなになり、双方不快になるだけなんですから。

博:まあ、あたりまえのことだが、「相手の立場に立って考える」のも必要だな。

本:あ、それからですね、私の使っているソフトがそうなってるのかもしれませ
  んけど、記事を読んでるとですね、一行が長いやつだと、折り返しますよね、
  で、そこで文字化けすることが結構発生するんです。これはソフトのせいで
  すよね。

博:まあ、そういうことが発生しないソフトを皆が使えばそれでいいのだが、な
  かなかそうもいかんしな。それに、一行があまり長いとネットワークで転送
  する時に、変に切られてしまうということもある。結論からいえば、あまり
  長い行というのは、書かない方がいいですな。

本:でも行の長さは規則はないですよね。強制されているわけではないんでしょ。

博:そうだよ。でも、まあ、過去からいわれているのは、だいたい1行あたりで、
  70byteぐらいが目安かな。それ以上だと、多いと感じるひとが多いようだな。

本:へえ、まあ、emacs系のやつだと、折り返しは簡単だな。そうかぁ、画面って
  のは、80字ってのが多いから、それが目安になっているということですよね。

博:その通り。それから、1行うんぬんといったが、これはテキストの話だな。
  これでバイナリを送るような場合というのがある。電子メールやNetnewsで、
  バイナリのプログラムそのまま送ってしまうと、送り先では壊れてることが
  結構あるんだぞ。

本:あ、それって、さっきの文字コードとか、一行の長さとかと同じことですね。

博:まあ、そういう面もあるな。よくいわれているのは、電子メールやNetnews
  を中継する所には、まだまだ、8ビット目が通らずに壊してしまったりする
  所が結構あるんだな。それにだ、そもそもNetnewsや電子メールは文字情報
  を送るためのプロトコルを使っているのだ。だから、文字でないバイナリの
  データが来たらどうなるかわからん。

本:そうですよね。バイナリだったら、偶然にも、通信終了を意味するのが出現
  しないとも言えないし、何か制御の意味があるのが出現してしまいますよね。

博:まぁ、うまくいく場合も皆無ではないし、この頃のメールのシステムには賢
  いのもあるから、絶対に送れないとまではいいきれないけどね。まあ、バイ
  ナリをそのまま送ったらうまくいかない。だから、文字の形で送るんだね。

本:ということは、ソースプログラムということですか。

博:いやいや、そういう手もあるが、そうではないんだ。うーん、例が悪いかも
  しれないが、例えばバイナリのダンプリストをとると、あれは文字だけだな。

本:そうですよ。ダンプリストですもん。あれは、各バイトに一対一の対応です。

博:だから、ダンプリストは、電子メールやNetnewsで送れるわけだ。そこで、う
  けとった人が、ダンプリストから元のバイナリデータを復元できるはずだな。

本:あ、そうか、そういうことなのね。そういう手を使うということなんですね。

博:実際のものは、正確にいえばちょと違うが、アイデアとしては、バイナリデ
  ータを、まず送る方で変換して、転送により変にならない文字の形にして、
  受ける方では、その文字からバイナリデータを復元するというやつだ。例え
  ば、ishとかuuencode/uudecodeとかがある。これには、変種がいろいろあっ
  て、チェックサム機構とかがあったりするのがあるし、何ビット展開するか
  というのもある。

本:(*_*)

博:おっと、本郷君ったら、こういう細かい話は理解できないようだな。目が点
  になっておるぞ。まあ、fj.*においては、普通はuuencode/uudecodeという
  のを使う、ということをひとまず記憶しておれば十分だな。

本:だから、fj.binaries.msdosの記事って、アルファベットとか記号とかが、
  ひたすら並んでるんですね。あれって立体視かと思ったら違うんですね。

博:そうじゃ。で、復元だが、まあ、ファイルとかにおとしてuudecodeするとか、
  復元のプログラムに喰わせるとか、まあ、色々あるが、これも、ローカルに
  聞いてほしいな。それに、誰も周囲の人が教えてくれなければ、最後の手段、
  fj.questions.miscへと質問するという手もあるな。まあ、それは最後の手段。

本:あ。それでまた思い出した。
博:何か厭な予感がするな。

本:最後の手段ということなんですが、時には漢字が使えなくなってしまいます
  よね。そういう時って、ローマ字で書きますよね。で、そういう時ですが、
  fj.*では、ローマ字を書く場合、訓令式なのか、ヘボン式なのか、どっちな
  んでしょうか。いざ、という最後の時なんですけどね。ヘボン式ってのは、
  ichikawa da joってやつで、訓令式ってのが、itikawa da zyoですね。

博:fj.*にはそういう規定はない。どちらでもお好きな方を。それに、こういう
  二つの方式があってどうこうする論争というのは、えてして神学の論争のよ
  うになるんだな。そう、ある意味で「○○は正しい、ゆえに、○○は正しい」
  というかんじといえば、わかるかな?そして、不毛な議論になりがちなんだ。

本:そうなんスか。まあ、どっちでもいいということですね。

博:そう。まあ、読めれば、どっちでもいいのよ。まあ、過去のfj.*の議論とか
  を見ているかぎり、自分と違う方式だからといって、相手をあまり責めたり、
  改宗させようとは考えないようにした方がいいと思いますね。まあ、そうす
  したければ、それは自由ですから、やってもいいけどね。でも、ほとんど、
  もう、主観的というか、信仰みたいなもんでね。論争をするだけ疲れるだけ
  のように思いますな。まあ、精神衛生の観点からいえば、この手の議論は、
  ほどほど、がいいと思いますよ。

本:でも、中に英単語等が入る場合がありますよね。node, site, madeとかね。

博:まあ、そういう時は、NODEのように、周囲とは大文字・小文字を変化して利
  用すると区別がついて便利ですけどね。あと、引用符でくくるとかの手もあ
  るから、そこらは、まあ、各自工夫してもらいたいと思うな。

本:あ、それから。なんでこの「fj.*の歩き方」は、段落で一字下げてないんで
  すか?

博:うっ。まあ、簡単にいうとだな。fj.*などでは、あまり詰めて書くと読みに
  くいからなんだ。段落を、頭一文字さげた程度では、端末なんかだとあまり
  効果的でなく、どこで段落が終るのかわからんのだよ。むしろ、1行あけた
  方が、段落が変化して読めて効果的だな。だから、ここでもそういう流儀で
  書いているな。段落を適当に切って、改行で1行空けないと、見にくいもの
  だな。ま、そこらは、効果的に読んでもらえる書き方は工夫してくれたまえ。

本:でも、全部の行を1行おきにすると、かえって読みにくいんですよね。

博:そうだよ。多くの人はそういうのは読みにくいって、感じてるようんだな。
  それから、意味のない空行は、意味がない(^_^)のですよ。読むソフトのペー
  ジャー機能で、連続した空行は詰めてしまうんだな。だからあまり意味がな
  いんだ。

本:でもですね。例えば、fj.rec.mysteryみたいとこでですね、ある所から先を
  読んじゃうと、ネタばらしになる場合もあるでしょ。そのような時には、空
  行をいっぱいいれておいた方がいいんじゃないのかなぁ。

博:そういう時は、fj.*では、「^L」を使うんだ。
本:^L?
博:^Lというのは、「コントロールL」のことで、改ページの制御文字。これを
  記事の中にうめておくと、たいていのソフトはそこで改ページの為に一旦停
  止するのだよ。そうして、その次が先頭からまた開始するという具合になっ
  ておる。

本:へえ。便利だなぁ。^Lをいれておくと、読む人にとっても便利になりますね。

博:^Lは便利だよ。あ、ただし、行頭でないと有効でないことが多いから、注意。
  さっきのネタばらしのような時には、その旨をことわってから、^Lを入れる
  と効果的だね。あ、そうそう、必要以上にやたらに、^Lがあると、うるさく
  感じる人が多いから、面白がってむやみやたらに入れない方がいいだろう。

本:じゃ、ここらでこの話は^Lを入れておきますか。