Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

EOF 文字について

412 views
Skip to first unread message

YAMAMOTO Daisuke

unread,
Feb 8, 2000, 3:00:00 AM2/8/00
to
山本と申します。

テキストエディタ(秀丸)を使って Windows95 環境で HTML ドキュメントを
作っています。

ある日作成した HTML ドキュメントを WWW ブラウザ(MS IE4.01)で閲覧したと
ころ、ドキュメントの末端に

のような余計な文字が表示されていました。いろいろ試してみると、これは
「EOF制御文字」を付加して保存した際にのみ起こる現象で、ドキュメントを
バイナリエディタで確認したところ、確かに 0x1A がファイル末端に付加され
ています。

そこで

* EOF 制御文字とはなにか
* HTML ドキュメントに EOF 制御文字は存在していいのか
* WWW ブラウザは EOF 制御文字をどう扱うべきなのか

等、ご存知の方があればお聞きしたいのです。またはそれらがわかる文書等あ
ればお教え願います。


やまもとだいすけ

Yoshio Kiya

unread,
Feb 8, 2000, 3:00:00 AM2/8/00
to
 YAMAMOTO Daisukeさん、こんにちは、木屋です。

YAMAMOTO Daisuke wrote in <87oce4$9...@infonet.sedept.cac.co.jp>
> * EOF 制御文字とはなにか

 昔、昔、CP/M という OS がありまして、こいつはファイルを、1
28バイト単位で管理していました。

 で、ファイルの文字数が、1文字でも128バイトなんですね。これ
では不都合なので、テキストファイルの終わりを示すために、EOF
をつけるようになってました。

# だったと思います。古すぎて、記憶があいまいですが…

=== Nihon Application Co.,LTD. 木屋 善夫 ki...@nac.co.jp ===

Watanabe,Go

unread,
Feb 9, 2000, 3:00:00 AM2/9/00
to
<87oce4$9...@infonet.sedept.cac.co.jp>の記事において
d-y...@remus.dti.ne.jpさんは書きました。

> 山本と申します。
>
> * EOF 制御文字とはなにか

名前の通り、ファイルの終端を示すコードで、CP/M や MS-DOS の
テキストファイルにおける独自仕様だと記憶してます。

> * HTML ドキュメントに EOF 制御文字は存在していいのか

HTML4 の SGML 宣言によると、
(http://www.w3.org/TR/html4/sgml/sgmldecl.html)

CHARSET BASESET "ISO Registration Number 177//CHARSET
ISO/IEC 10646-1:1993 UCS-4 with
implementation level 3//ESC 2/5 2/15 4/6"
DESCSET 0 9 UNUSED
9 2 9
11 2 UNUSED
13 1 13
14 18 UNUSED
32 95 32

なので、制御コード部分については HT(9), NL(10), CR(13) 以外は
「UNUSED」で、使えない文字 = エラーということになります。

なお、該当コード、0x1A は、ASCII およびそれに準じた規格では、
SUB = SUBstitute Character (置換文字)であり、EOF などというものは存在しません。
# テキストの終端を示すのに使うコード ETX = End of TeXt 0x03 はあります。

この手の制御文字については、ISO/IEC 6429 (JIS X 0211) 符合化文字集合用
制御機能 で規定されています。

> * WWW ブラウザは EOF 制御文字をどう扱うべきなのか

全く表示しないか、または「エラー文字」としてわかるように表示するかの
いずれかが妥当かと思います。

# ちなみに、MS-IE (というか Windows の TrueType のエンジン)がその点だけの
# 文字を返してくるのは、該当コードのフォントが存在しない時だったかと
# 思います。結果として「表示不能」なのはわかるわけですな。
--
渡邊剛 (Watanabe, Go) goc...@internetsolutions.co.jp
Internet Solutions, Inc.

Kouichi Niimi

unread,
Feb 9, 2000, 3:00:00 AM2/9/00
to
新美@MOMOたろうです。

"YAMAMOTO Daisuke" <d-y...@remus.dti.ne.jp> wrote in message news:87oce4$9...@infonet.sedept.cac.co.jp...


> * HTML ドキュメントに EOF 制御文字は存在していいのか

Another HTML-lint <http://openlab.ring.gr.jp/k16/htmllint/index.html>
でチェックすると、以下の様に指摘されます。

>> </HTML> の後にまだ何かテキストがあります。
>>> HTMLは </HTML> が現れたらおしまいです。

つまり、0x1Aは通常の文字として認識されるべきなのでしょうね。
でもってそんなものは存在してはいけないのだと。

> * WWW ブラウザは EOF 制御文字をどう扱うべきなのか

また以下の様にも指摘されます。

>>> WWWブラウザによっては </HTML> の後も表示しますが、
>>> そんなのを期待してはいけません。

あり得ないものをどう扱うかは規定する必要もないでしょう。
(あぁ自分の言葉で記述したい…… 石野さんいつもお世話に
なってます ^^;)
--
新美 浩一@知多半島の住人
ni...@gld.mmtr.or.jp


byakko

unread,
Feb 9, 2000, 3:00:00 AM2/9/00
to

Yoshio Kiya wrote:

> > * EOF 制御文字とはなにか
>
>  昔、昔、CP/M という OS がありまして、こいつはファイルを、1
> 28バイト単位で管理していました。
>
>  で、ファイルの文字数が、1文字でも128バイトなんですね。これ
> では不都合なので、テキストファイルの終わりを示すために、EOF
> をつけるようになってました。
>

EOF = End of file の略です。ほんの蛇足...

--
/************************/
/* S. Oguma */
/* smal...@usa.net */
/************************/

ka...@sra-tohoku.co.jp

unread,
Feb 13, 2000, 3:00:00 AM2/13/00
to
かべ@SRA東北

>> > * HTML ドキュメントに EOF 制御文字は存在していいのか
>>

>> HTML4 の SGML 宣言によると、
>> (http://www.w3.org/TR/html4/sgml/sgmldecl.html)
>>
>> CHARSET BASESET "ISO Registration Number 177//CHARSET
>> ISO/IEC 10646-1:1993 UCS-4 with
>> implementation level 3//ESC 2/5 2/15 4/6"
>> DESCSET 0 9 UNUSED
>> 9 2 9
>> 11 2 UNUSED
>> 13 1 13
>> 14 18 UNUSED
>> 32 95 32
>>
>> なので、制御コード部分については HT(9), NL(10), CR(13) 以外は
>> 「UNUSED」で、使えない文字 = エラーということになります。

この辺はちゃんとわかってそうな人でも間違えそうな部分ですが、

(JIS X 4151: 文書記述言語SGML)
5.2.2 実体終了Ee
Eeは、実体の終了を示す信号である。システムは、Eeを表現するのに、
SGML文字と区別することができるどんな方法を用いても良い。

^Z がこれに該当するということにすれば別にエラーではありません。

ただ、Eeをどういうビットパターンにするか、そもそも渡すのか等については
SGML的には決まってません。(当事者で決めておいてね、つーこと)
渡さないと決めておいた所に ^Z が来たら、非SGML文字としてエラーに
するんでしょうかね…
それに "</HTML>" の後には Ee しか持ってこれない。

「HTMLドキュメントに…」という言い方だと、システムとして^Zが必要な
場合もあるので何とも言えなくなりますが、
「文書実現値集合(6.2)に…」であれば明確にダメと言えます。

#サーバー上にあるHTMLファイルは必ずしも文書実現値そのものではない


現実のブラウザは腐った文書もそれなりに扱ってやらんと
使いものにならないので、無視するなり警告で済ませるなりってとこでしょうか。
「どう扱うべきか」は特に決まってません。(14.4.1 誤りの検出)
------------------------------------------------------------------------------
かべ@sra-tohoku.co.jp VEGA Systems MCMXCI
「自分はレーサーだっていうのかい? たいしたことないじゃないか。」
------------------------------------------------------------------------------

0 new messages