|
>〓〓 は、i と viii のつもりでした。 |
|
> UNIX USER 12月号にFreeBSD3.3Rがついてるのでこいつを注文することにしました。 UNIX USER 2000年3月号にはFreeBSD 3.4が収録予定だと思います :-) |
|
> Transfer-Encoding: chunked 全然わかりません。RFC 読んでも何のことやらさっぱりなんで、 どなたか教えて。 > 今、投稿する時に へにかさんのクッキーを食べちゃってるみたいなんですが ああ、そうですね。確かに前の人のが入ります。バグですね (^^; > <FONT COLOR=red>mm</FONT> ああ、バグですね。これ、直したつもりだったんだけどなぁ。 > i と viii のつもりでした。 あああ、バグ…ですかね? 書き込んだ i は (SJIS で) 0xEEEF ですか? それとも 0xF940 ですか? ところで、http://X68000.startshop.co.jp/~68user/tmp/knj-tut.txt の 2D30/874F の行は、うちでは 2D30/874F 丸16丸17…I II III…VIII IX X XI(行末) と見えるんですが、Windows でも同じですか? XI なんてフォントあります? # うちのフォントは機種依存文字部分を追加したものなのですが、 # 追加時にミスってしまったのかもしれない。 > うーん、cookieと半角カナ以外の改造点が分からないなぁ(^∪^ ログ形式を http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard-log/lall としました。初回の出力時は http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard-log/cache/ のようにキャッシュファイルを作成し、次回はタイムスタンプをみて、 キャッシュが有効なら、前回作成したキャッシュを Content-Length と Last-Modified を付けて出力します。 # だから、前の投稿者への FORM 内容が残ってしまったと。 |
|
ネットワークプログラミング勉強させていただきました。 ところで現在、無謀?にもperlで自作proxyサーバを作っているのですが ローカルIPの接続はできるのですが、Internet側(gateway)の環境越 がうまく動かないのですが。 perlでのソケット通信においてなにかgateway等の設定があるのでしょうか? *HTTPサーバ上でperlを動かすぶんにはhttpサーバが勝手にgatewayを越え て接続してくれるので問題なかったのですが。httpサーバではなく直接 linuxに常駐するとうまく動きませんでした。 だれか知っている方いませんか? *接続webサーバのIP取得にはgethostbyname関数を使用しています。 自作proxyサーバはマルチスレッドにおいてlinuxサーバ側で常 駐させ、クライアントのプロキシ接続要求をPort:8080で監視さ せています。 ちなみにHTTPコネクションの参考にしたものは以下のサイトです。 興味のある方は参考に。 URL:http://www2d.biglobe.ne.jp/~gama/cgi/index.cgi |
|
下の書き込みの件、解決しました。 当方のlinuxサーバの設定ミスにより正しくgateway設定がされていなく 見つけられなかったようです。(初歩的ミスです) よって正しくGatewayがサーバ上で設定されていれば、gethostbyname関数 において正常に相手サーバのIPアドレスは取得できました。 これで自作Proxyは動くようになりましたが、なぜか遅い! サーバ側への負荷はあまりなさそうなのですが画像(gif・jpg) のデータ取得が遅く、ソケットから必ず最後のバイト読み込みに おいてリターンがなかなか返ってこないのです。 画像データの取得にやり方があるのでしょうか? *完成したら公開しますので勉強材料にでもしてください。 なかなかPerl Proxyは公開されていませんので。 |
|
>0xEEEF ですか? それとも 0xF940 ですか? �世蓮�0xFA40 です。0xF940 にはなにもありません。 >と見えるんですが、Windows でも同じですか? XI なんてフォントあります? 分かりやすいように、キャプチャしてみました。( XI はありません) http://www2s.biglobe.ne.jp/~cru/test/moji01.gif knj-tut.txt によれば、これがNEC PC-98シリーズの依存文字になってるようですね。 ウチのパソコンは、このNEC PC-98シリーズなので、PC/AT互換機でも同じように 見えるかどうかは分かりません。 ついでに、0xEEF0 や 0xFA40 付近も含めてキャプチャーしてみました。 ↓オリジナルHTML http://www2s.biglobe.ne.jp/~cru/test/moji02.html ↓ブラウザで見たキャプチャ画像 http://www2s.biglobe.ne.jp/~cru/test/moji02.gif >のようにキャッシュファイルを作成し、次回はタイムスタンプをみて、 むむー、まだ理解してないけど、なんかスゴいことやってる(苦笑) |
|
> 画像データの取得にやり方があるのでしょうか? ん〜、ソースを見ないことには何とも言いがたいです。 > 0xFA40 です ありゃ、 http://www2d.biglobe.ne.jp/~msyk/charcode/kisyuizon/115-116ku.html の「1バイト目がF9」という記述が間違っているのかな? このページには とてもお世話になっているので、間違っているなら feed back しておかないと。 で、115〜119区についても自動変換するようにしておきます。 > このNEC PC-98シリーズなので 98 の機種依存文字と言っても、Windows を動かすと PC/AT 機と 同じなんでしょうかね。 |
|
>の「1バイト目がF9」という記述が間違っているのかな? 文字コード表くらい、どこかにあるだろうと思って、検索したけど、意外とないですね。 ウチの漢字コード表では、間違いなく115区はFAになってます。 http://www.vector.co.jp/soft/win95/util/se102214.html >IBM拡張文字区点コード(換算)で115区〜119区(FA40-FC4B) という記述もありました。 やはり、 http://www2d.biglobe.ne.jp/~msyk/charcode/kisyuizon/115-116ku.html http://www2d.biglobe.ne.jp/~msyk/charcode/kisyuizon/117-118ku.html は、1ずつずれてるんじゃないかなぁ… http://www2d.biglobe.ne.jp/~msyk/charcode/kisyuizon/119-120ku.html のFCはOKかな >Windows を動かすと PC/AT 機と同じなんでしょうかね。 うーん、よく分かりません(苦笑) |
|
0xFA40という文字ですが、私の環境(PC/AT+Win95)では、 この掲示板上では i とは表示されず、0xEDBEと同じ文字として表示されます。 同様に viii も0xEDC5と同じになっています。 この掲示板の漢字コードはEUCのようですが、EUCの2バイト漢字の範囲は JIS-X0208と同じで、これはシフトJISで0xEFFCまでに対応しているので、 それ以降のシフトJISコードはEUCに変換できません。 するとこの場合は、0xFA40というコードがEUCに変換されずに素通りして しまい、その第1,2バイト目のそれぞれのトップビットを取った 0x7A40がたまたまシフトJISの0xEDBEに一致していたためと思われます。 |
|
>0x7A40がたまたまシフトJISの0xEDBEに一致していたためと思われます。 ちゃんと理解してませんが、Shift-JISの0xEDBE(日偏に春の文字)は、EUCのソース上では、 0xFAC0になってますね。 これは、0xFA40が変換されずに、第2バイトのMSBが立っただけってことかな? |
|
いえ、違うと思います>goosan この掲示板では、入力文字列を jcode::convert を使って EUC に 変換し、EUC コードで機種依存文字のチェックをしています。 で、jcode::convert は、SJIS の 0xFA40 (i) を 0xFAC0 に 変換するようですが、これは多分間違った結果ではないかと思います。 # EUC の扱える JIS X 0208 は 94区までしか定義されていないので、 # 間違っているという表現は不適切かもしれませんが。 で、EUC の 0xFAC0 は http://www2d.biglobe.ne.jp/~msyk/charcode/kisyuizon/89-90ku.html の `日春' という文字に相当するので、その文字が表示されている、 ってことだと思います。 で、mm さんはそれをコピーして http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=666 に書かれたので、`日春'`が自動変換され、「〓」となってしまった ということではないでしょうか。 さて、困ったなぁ。SJIS で 95区以降 (JIS X 0208 で 規定されていない部分) の入力があった場合どうするべきか。 …と悩んで調べてみたところ、 http://www.opengroup.or.jp/jvc/cde/sjis-euc.html > 注記: > ... > 3.NEC選定IBM拡張文字は,SJISから日本語EUCへの変換においては, > SJISでいったん IBM拡張文字に 変換してから日本語EUCに変換する. http://www.opengroup.or.jp/jvc/cde/ibmext-table.html のように、補助漢字 (JIS X 0212) に置換するのも一つの解な ようですね。ただ、少なくとも FreeBSD (X Window System) では JIS X 0212 フォントはオプショナルですし、Windows ではまず JIS X 0212 は使えないでしょうし (SJIS では JIS X 0212 は 使用できない)、現実的ではないかもしれません。 結局 jcode.pl を修正し、さらにブラウザが Windows なら SJIS で出力、UNIX なら EUC で出力、ってことになるのかなぁ。 # …なんかどんどん深みにはまっていってるような気が (笑) ところで、仮に mm さんが 91/92 区の i/viii を使っていたら 自動変換されたはずなのですが、mm さんがお使いの IME は 普通に i/viii を入力すると 115/116区のコードになって しまうんでしょうか? |
|
>普通に i/viii を入力すると 115/116区のコードになって >しまうんでしょうか? 普通かどうかはよく知らないんですが、「いち」を漢字変換しても 大文字のIしか出て来ないので、MS-IMEの「漢字辞典」というウインドウを開いて、 「特殊文字」タグの中から小文字のローマ数字を選ぶと115区の��(i)が入力されます。 この「特殊文字」タグは、8区の罫線や13区の記号の一覧になっているんですが (大文字のローマ数字も13区のものです)、小文字だけが115区になっています。 文字コード表というアプリケーションを使う以外に、92区の�颪鯑�力する方法 を知りません…ホントに私が知らないだけかも知れませんが(苦笑) >で、mm さんはそれをコピーして ピンポ〜ン! 後で調べようと思って、忘れてました(苦笑) >で、jcode::convert は、SJIS の 0xFA40 (i) を 0xFAC0 に >変換するようですが、これは多分間違った結果ではないかと思います。 jcode.pl の変換部分って、覗いたことなかった(苦笑) |
|
そうですね。EUCだから逆ですね。JISにこだわり過ぎてしまったようです。 >この掲示板では、入力文字列を jcode::convert を使って EUC に >変換し、EUC コードで機種依存文字のチェックをしています。 フォームが送出したデータがどういう漢字コードだったかという点も 気になります。一般にはフォームのあるページと同じ漢字コードに なることが多いようですが、仮にそうだとすると、キーボードから フォームに入力した際にはSJISだったのが、フォームがデータを 送出する際にはEUCに変換され、jcode'convert()が入力漢字コードの 自動判定をする際に多数決の論理でEUCと判定され、私がjcode.plを 見る限りではEUC->EUCではカナの半角<->全角変換をしない限りは 何もしないようなので、jcode.convert()でMSBが立ったことは 有り得ないようです。 |