68user's page 掲示板

Prev< No. 673〜699> Next  [最新発言に戻る] [過去ログ一覧]
No. 673 # mm 2000/01/19 (水) 22:35
>の「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 機と同じなんでしょうかね。
うーん、よく分かりません(苦笑)

No. 674 # goosan [E-mail] 2000/01/19 (水) 23:19
0xFA40という文字ですが、私の環境(PC/AT+Win95)では、
この掲示板上では i とは表示されず、0xEDBEと同じ文字として表示されます。
同様に viii も0xEDC5と同じになっています。
この掲示板の漢字コードはEUCのようですが、EUCの2バイト漢字の範囲は
JIS-X0208と同じで、これはシフトJISで0xEFFCまでに対応しているので、
それ以降のシフトJISコードはEUCに変換できません。
するとこの場合は、0xFA40というコードがEUCに変換されずに素通りして
しまい、その第1,2バイト目のそれぞれのトップビットを取った
0x7A40がたまたまシフトJISの0xEDBEに一致していたためと思われます。

No. 675 # mm 2000/01/20 (木) 01:08
>0x7A40がたまたまシフトJISの0xEDBEに一致していたためと思われます。
ちゃんと理解してませんが、Shift-JISの0xEDBE(日偏に春の文字)は、EUCのソース上では、
0xFAC0になってますね。
これは、0xFA40が変換されずに、第2バイトのMSBが立っただけってことかな?

No. 676 # 68user [URL] [E-mail] 2000/01/20 (木) 01:09
いえ、違うと思います>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区のコードになって
しまうんでしょうか?

No. 677 # mm 2000/01/20 (木) 03:19
>普通に i/viii を入力すると 115/116区のコードになって
>しまうんでしょうか?
普通かどうかはよく知らないんですが、「いち」を漢字変換しても
大文字のIしか出て来ないので、MS-IMEの「漢字辞典」というウインドウを開いて、
「特殊文字」タグの中から小文字のローマ数字を選ぶと115区の��(i)が入力されます。

この「特殊文字」タグは、8区の罫線や13区の記号の一覧になっているんですが
(大文字のローマ数字も13区のものです)、小文字だけが115区になっています。
文字コード表というアプリケーションを使う以外に、92区の�颪鯑�力する方法
を知りません…ホントに私が知らないだけかも知れませんが(苦笑)

>で、mm さんはそれをコピーして
ピンポ〜ン!
後で調べようと思って、忘れてました(苦笑)


>で、jcode::convert は、SJIS の 0xFA40 (i) を 0xFAC0 に
>変換するようですが、これは多分間違った結果ではないかと思います。
jcode.pl の変換部分って、覗いたことなかった(苦笑)

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 678 # goosan [E-mail] 2000/01/20 (木) 09:12
そうですね。EUCだから逆ですね。JISにこだわり過ぎてしまったようです。

>この掲示板では、入力文字列を jcode::convert を使って EUC に
>変換し、EUC コードで機種依存文字のチェックをしています。
フォームが送出したデータがどういう漢字コードだったかという点も
気になります。一般にはフォームのあるページと同じ漢字コードに
なることが多いようですが、仮にそうだとすると、キーボードから
フォームに入力した際にはSJISだったのが、フォームがデータを
送出する際にはEUCに変換され、jcode'convert()が入力漢字コードの
自動判定をする際に多数決の論理でEUCと判定され、私がjcode.plを
見る限りではEUC->EUCではカナの半角<->全角変換をしない限りは
何もしないようなので、jcode.convert()でMSBが立ったことは
有り得ないようです。

No. 679 # goosan [E-mail] 2000/01/20 (木) 09:17
0xFA40がEUCに変換される際にどういう挙動をしたかという点も
問題です。書き忘れていました。

No. 680 # 68user 2000/01/20 (木) 15:24
> 補助漢字 (JIS X 0212) に置換するのも一つの解なようですね。
おっと、大きな勘違い。

この掲示板は (というより EUC-JP は) 13,89〜92 区を扱えますが、
115〜119 区の機種依存文字は全て13,89〜92 区の方にも含まれて
いるので、jcode.pl をいじって、SJIS の 115〜119区を
13,89〜92区に変換するようにすればいいわけですね。

> jcode::convert は、SJIS の 0xFA40 (i) を 0xFAC0 に
> 変換するようですが
昨日は確かに手もとで確認したつもりだったのですが、
今日試してみると jcode::convert(*,'euc') で、
SJIS の 0xFA40 が 0x13C0 (たぶん) になってしまいました。

> フォームが送出したデータがどういう漢字コードだったか
> という点も気になります。
ここも含めて再度チェックしておきます。

> 普通かどうかはよく知らないんですが、「いち」を漢字変換しても
なるほど。115〜119 区への対応は必須ですね。ありがとうございました。

> 間違いなく115区はFAになってます。
これは向うに連絡しておきます。

No. 681 # goosan [E-mail] 2000/01/20 (木) 17:43
>昨日は確かに手もとで確認したつもりだったのですが、
>今日試してみると jcode::convert(*,'euc') で、
>SJIS の 0xFA40 が 0x13C0 (たぶん) になってしまいました。
私が試してみると、0x13A1になりました。

0xFA40が自動判定でSJISとされるのは間違いないと思います。
>$re_sjis_c = '[\201-\237\340-\374][\100-\176\200-\374]';
は0xFA40を含みますから。
一方、
>$re_euc_c = '[\241-\376][\241-\376]';
では含まれません。

No. 682 # 68user 2000/01/20 (木) 18:25
あ、そうです。スクリプトが手元にないのでアレですが、
多分 0x13A1 でした。はて、昨日見た 0xFAC0 は幻であったか?

一番簡単なのは、require 'jcode.pl' して、jcode::init で
初期化された後に %jcode::s2e に115〜119区相当のテーブルを
追加することかなぁ。
# jcode.pl はいじりたくないからなんだけど、(コーディング作法
# としては) よくない…ですよね。

No. 683 # goosan 2000/01/20 (木) 20:02
私の場合、
---
#!/usr/local/bin/perl
require "jcode.pl";
while(<>) {
    &jcode'convert(*_, "euc");
    print;
}
---
この程度のスクリプトです。要は大したことやっていません。(^^;

入力が
000000 FA 40 0A
の時に、スクリプト名 kconv.pl として
% ./kconv.pl test > test.e
とした結果、
000000 13 A1 0A
という出力になりました。

No. 684 # トロピカル 2000/01/21 (金) 17:48
知っていたら教えてください。
シェルを使用してSQLPLUSのやり方についてですが、

以下の(1)のシェルからsqlplusにてORACLEに接続し
(2)のファイルのsql文を実行させたいのですが、
その時に(2)の条件文の'xxxxxxx'を(1)のシェルから引数と
して(2)に渡したいのですがどうしたら良いかわかりますで
しょうか?

また、(2)のsql文にて得た情報を(1)のシェルに与える場合
はどうすれば良いですか?

(1)aaaa.shファイル
--------------------------------------------------
sqlplus user/passward @bbbb.sql

--------------------------------------------------


(2)bbbb.sqlファイル
--------------------------------------------------
select item1 from use_table where item2 = 'xxxxxxx'

---------------------------------------------------

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 685 # 68user 2000/01/21 (金) 20:21
これは SQL の話ですか? ならば僕にはわかりません。
じゃなくて、あるファイルの内容の一部をコマンドラインの引数として
渡したり、出力結果をコマンドラインの引数として渡したり、という
ことですか? つまりシェルスクリプトの書き方を質問しているのですか?

もし後者なら、ちょっと意味が掴めないです。
    「もしファイルの内容が xxxxx だとしたら、その中から yyy の部分の取り出し、
        最終的に zzz user/passward @bbbb.sql xxxxx という風にコマンドを実行したい」
などと例を書いて下さい。

> SJIS の 0xFA40
では、なぜファイルには 0xFAC0 が書かれているんだろう?

No. 686 # gama [URL] [E-mail] 2000/01/22 (土) 02:41
逆link より遡って登場させていただきます。

どうも...参考になってうれしいです。>参考になった方

敬愛する、68user さんとこの掲示板で URL 書いていただいて感激です。


あーと、有識者系から嫌われ、UG 系からは、もっと、あぶない情報を
との声をいただく我が Web であります(^^;;;

さて、jcode.pl で、sjis と EUC との判別について...

かつて、半角カナを jcode.pl で扱いたいたかったので、
いろいろ試行錯誤した結果が、

http://www2d.biglobe.ne.jp/~gama/cgi/jcode/jcode.htm

にあります。

自分勝手に判別するルーチンを 変造しています。

ご参考になれば、幸いです。

No. 687 # 68user 2000/01/23 (日) 02:43
> 敬愛する、68user さんとこの
もちっと偉い人を敬愛して下さい :-)

> 自分勝手に判別するルーチンを 変造しています。
では早速拝見…と思ったら、getcode.pl が not found なようで…(^^;

No. 688 # 68user [URL] [E-mail] 2000/01/23 (日) 03:37
前の人の FORM 内容が残ってしまうのと、cookie のデータが
間違ってたのを修正。どうかな?

No. 689 # muro 2000/01/23 (日) 19:04
初めまして。CGI(perlスクリプト)のことで調べごとをしていたらたどり着きました。
ですが肝心のその調べごとについてはなかなか思ったようなページが見つからず、ちょっと困っております。
一見さんにて恐縮ですが、できたらご助言下さい。

何かというと、「HTTPの(リクエスト)ヘッダ」についてです。訳あってWebページを取得するスクリプトを自前で
用意する必要があるのですが、まさかGetだけ送るっていう横暴なことはさすがにしたくないので。。。(--;

・HTTP(要求)ヘッダの一覧+解説
・通常のブラウザが送信しているヘッダについて

といった情報が記載されているページを探しております。

もちろんcgiなどで環境変数一覧を表示させた結果(応答ヘッダ)と基本的に大差がないことは
存じておりますが、やはり一度確認しておきたいのです。

また、手法を変えて、LWPなどのモジュールでヘッダを個別設定できるかどうかなども調べてみるつもりです。
この辺の情報でも構いませんのでお願いします。

以上、大変わがままな質問ですが、よろしくお願いします。
#RFCを見ろっていうのはご勘弁下さい。(^^;

No. 690 # 68user [URL] [E-mail] 2000/01/23 (日) 23:51
> ・通常のブラウザが送信しているヘッダについて
http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=658
で用は足りますか?

> ・HTTP(要求)ヘッダの一覧+解説
RFC…。もし金を払ってもいいなら http://www.oreilly.co.jp/BOOK/webcli.htm

> LWPなどのモジュールでヘッダを個別設定できるかどうか
とりあえず
    perldoc LWP::UserAgent
    perldoc HTTP::Headers
    perldoc HTTP::Request
    perldoc URI::URL
を御一読下さい。

No. 691 # gama [URL] [E-mail] 2000/01/24 (月) 21:50
>> 自分勝手に判別するルーチンを 変造しています。
> では早速拝見…と思ったら、getcode.pl が not found なようで…(^^;

Link 直しました(^^;;;

  http://www2d.biglobe.ne.jp/~gama/cgi/jcode/jcode.htm

No. 692 # goosan [E-mail] 2000/01/25 (火) 10:57
http://www2d.biglobe.ne.jp/~gama/cgi/jcode/k-jis.htm
こちらのページなんですが、JISで8bitの半角カナを使っている
ようですが、ESC ( I で7bitのカナを使うのが普通だと
思うのですが。学校のFreeBSD-3.3+NC4.7ではSJISやEUCのページは
見えるのですが(半角カナも)、ここだけ化けてしまいます。
家の環境(Win95+NN3.04)ではここも文字化けしていないのですが、
ソースを見た時、半角カナの部分だけJISが化けていないので
気になっていました。

No. 693 # gama [E-mail] 2000/01/25 (火) 23:40
> こちらのページなんですが、JISで8bitの半角カナを使っている
> ようですが、ESC ( I で7bitのカナを使うのが普通だと
> 思うのですが。学校のFreeBSD-3.3+NC4.7ではSJISやEUCのページは
> 見えるのですが(半角カナも)、ここだけ化けてしまいます。

あ、なるほど、現在のは手許の Win95 上のエディタでコード変換を
処理した結果なので、多分半角カナが 8bit なんですね。

ずーっと、それでいいと思いこんでました。

7bit 半角カナとかいうと、20 年以上くらいの規格という思いこみがあった
わけです。

> 家の環境(Win95+NN3.04)ではここも文字化けしていないのですが、
> ソースを見た時、半角カナの部分だけJISが化けていないので
  気になっていました。

No. 694 # リュウ [URL] [E-mail] 2000/01/28 (金) 20:19
ゲーム系掲示板を作ってみたので使ってみて

No. 695 # エリ 2000/02/01 (火) 16:03
PC上で、C++で作成したDLLを、UNIX上で使えるようにしたいのです。
どのようにしていけばよいか、教えてください。
C++内でどのような変換を行い、UNIX上にてコンバートすればよいのでしょうか?

No. 696 # ゲノ 2000/02/01 (火) 16:40
質問があります。よろしくお願いします。
% ls ファイル名 
とした時に該当ファイルが無かった場合
ls:No match.
と出ますがこのメッセージを出さない方法が
ありましたら教えて下さい。

No. 697 # 68user [URL] [E-mail] 2000/02/01 (火) 18:40
> C++で作成したDLLを、UNIX上で使えるようにしたいのです。
Windows は全く知りませんが (DLL ってランタイムライブラリ
ですよね? というくらいしか知らない)、DLL を UNIX に
持ってくるのはさすがに無理でしょう。

C++ のソースを持ってきて、ar でアーカイブ作るか、ld で
ランタイムライブラリを作るのがまっとうな方法だと思います。

> ls:No match.
> と出ますがこのメッセージを出さない方法
「No match」が出るのは
    「tcsh で、ワイルドカードを使って、マッチしなかったとき」
だと思いますが、
    % (ls hoge* >/dev/tty) >& /dev/null
で、標準エラー出力をリダイレクトするとか、
    % set nonomatch
    % ls hoge*
として、マッチしなかったときにエラーにさせないようにするとか、
    % set noglob
    % ls hoge*
として、最初からワイルドカードを展開させない、などの方法があります。

No. 698 # Fu [E-mail] 2000/02/01 (火) 20:39
はじめまして。
perlでメールを受信する方法を調べていたところ、こちらの掲示板を
発見しました。
お尋ねしたいことは、pop3サーバーからメールを受信し、そのメールの
添付ファイルをWindowsのフォルダに保存する方法です。
UNIXやCGIの経験が全く無い素人なもので、なかなかうまくいきません。
参考になるURLや書籍等もありましたら教えていただけないでしょうか。
OSはWindowsNT4.0又はWindows95です。
宜しくお願いします。

No. 699 # 68user [URL] [E-mail] 2000/02/01 (火) 21:22
POP へのアクセスは
    http://X68000.startshop.co.jp/~68user/net/
を読んで下さい。

multipart メールをバラすのは、perl の MIME-tools モジュールで
できそうな感じです (試したことないので)。わからなかったら
また質問して下さい。

Prev< No. 673〜699> Next  [最新発言に戻る] [過去ログ一覧]