|
0xFA40がEUCに変換される際にどういう挙動をしたかという点も 問題です。書き忘れていました。 |
|
> 補助漢字 (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になってます。 これは向うに連絡しておきます。 |
|
>昨日は確かに手もとで確認したつもりだったのですが、 >今日試してみると 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]'; では含まれません。 |
|
あ、そうです。スクリプトが手元にないのでアレですが、 多分 0x13A1 でした。はて、昨日見た 0xFAC0 は幻であったか? 一番簡単なのは、require 'jcode.pl' して、jcode::init で 初期化された後に %jcode::s2e に115〜119区相当のテーブルを 追加することかなぁ。 # jcode.pl はいじりたくないからなんだけど、(コーディング作法 # としては) よくない…ですよね。 |
|
私の場合、 --- #!/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 という出力になりました。 |
|
知っていたら教えてください。 シェルを使用して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' --------------------------------------------------- |