[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
2000/10/11 22:35 from Umjammer
Title: [teenbbs:780] 報告ですー。
No. : 780
Sender: Umjammer
URL :
Title : 報告ですー。
30番あたりの書き込みを参考にしてやってみました。
HP 200LX+Paldio611Sという環境下で、HTTPGETでもって掲示板への書き込み成
功しました。でもまだ半手動url-encode処理をして、かつASCII文字のみですが。
書き込みをした掲示板はT-CUPの掲示板(MiniBBS互換!?)で、まあ具体的には下
記アドレスです。LX系の掲示板なんですが。
http://www62.tcup.com/6207/proteus.html
ところで、
コード変換 > Qエンコード > URLエンコード
という処理を経て初めて日本語が使えるということですが、(東Bの火事で消滅
してしまったという)具体的なところを教えてほしいのです。
コード変換はNKFやQKCでOKとしてQエンコードですが、DOS上でQエンコードでき
るツールがよくわかりませんでした。
MPACKは、デフォルトではBASE64でエンコードしますが。マニュアルを読んで
も、エンコードの種類を変えられるスイッチはないようでした。
ほかに適当なものも見つからず。
どうかDOS上でQエンコードできるツールを教えて下さい。
URLエンコードについていろいろ調べてみますと、特に複雑な処理でもなく、単
なる置換でいけるものだということがわかりました。
jperl urlenc.pl kakiko.tmp > kakiko.bod
みたいな。
Web上で見つけたURLエンコードの手順としては以下のようなものがありました
(ほんとはちょっと違うけど、自分でわからないなりにスクリプトとして完結さ
せてみた)。これでOKですか? なんか結果が違うんですけど。空白が「%20」に
なったりとか。後述の「半手動」で使っているcgiだと半角スペースは「+」にな
りますね。
#!/usr/local/bin/perl
While(<>){
s/(\W)/sprintf("%%%02X", ord($1))/eg;
print;
}
冒頭の「半手動」とは、そういう処理をするcgiを自分のWebスペースで実行さ
せて、そこからコピーペーストした、ということを意味してます。
http://homepage2.nifty.com/buckeye/software/dl.htm
そのcgiとは、上記のURLからダウンロードできる「フォーム解析ツール」のこ
とです。このツールは大変便利で、書き込みフォームからcgiに渡される引数をす
べて表示してくれます。TBBSUPやHTTPGET用の書き込み雛形ファイルを作るのに
もってこいです。副産物として、フォームに日本語を入力するとURIエスケープし
て表示してくれるのです(^^;(これはサーバのほうでやっているのかな?)
>これは RFC をちゃんと読めば \x0D0A が正しいことが分かります.
素朴な疑問なのですが、必然的に改行が入る本文を、どうやって引数のパラメー
タとして1行にまとめるかということがわかりません。
普通にフォームから投稿しようとする場合、本文には改行を入れるわけですが、
これがどのような形でcgiに渡っているのかということがわからないわけです。
HTTPGETで書き込みをアップしようとする場合、目的のWebBBSのcgiにPOSTアク
ションで与える引数を、「Request-Entity-Body:」に記述するファイル内に1行に
まとめる必要があります。1行にまとめつつ改行を活かしたい場合、どうするかと
僕が考えると、本文部分のみに以下のスクリプトを適用して、\x0D0Aを<BR>に
変換して1行にまとめてしまう、という単純な方法を思い浮かべてしまいます。
#!/usr/local/bin/perl
While(<>){
s/\x0D\x0A|\x0D|\x0A/<BR>/g;
print;
}
これでよいですか?
Qエンコードする前にこの処理をするか、それともQエンコードすることでCR+LFも
エンコードされる? で1行にまとまる?
バカなこといってたらすいません。
[レスを書く]