2021年10月25日月曜日

webページでテキストファイルのアップロードが失敗した。その理由は、そのwebシステムの改行コードがテキストファイルの改行コードとは異なるためだ。

 webページでテキストファイルのアップロードが失敗した。その理由は、そのwebシステムの改行コードがテキストファイルの改行コードとは異なるためだ。

 一般にwindows系のシステムでは、改行コードはCR+LFで2バイトだ(CRとはCarridge Returnの略で、値は0d。LFとはLine Feedの略で、値は0a)。一方、UNIX 系(Linux含む)のシステムの改行コードは、LFのみだ。CRだけのシステムもあるようだ。それゆえ、web系のシステムをlinuxで作ると、改行コードはLFとなる。

 それに対して、クライアントとして、windowsでアップロードするデータのテキストファイルをテキストディタとかvbaとかで作ると、通常、改行コードはCR+LFとなり、webシステムへのテキストファイルのアップロードがフォーマットエラーとなるわけだ。

 そうならないためには、改行コードを意識して、テキストファイルを作成する必要がある。

 たとえば、windowsクライアントのツールをvbaで作る場合、普通のprint s(sはstringの文字変数)ではCR+LFが付くため、わざわざ、print s & vbLf; とするのだ。最後尾の;がCR+LFを抑止し、vbLfでLFのみを付与d切るのだ。

 テキストエディターの場合、そのソフトが改行コードを指定した保存をサポートしていれば、変更できる。

0 件のコメント:

コメントを投稿