68user's page 掲示板

Prev< No. 2170〜2178> Next  [最新発言に戻る] [過去ログ一覧]
No. 2170 # 68user 2001/10/04 (木) 01:48:25
>>2168
> なぜでしょうか?
なぜでしょうね? 正確なところは各部分で
    s/([^-_a-zA-Z0-9])/sprintf("%%%02lX",unpack("C",$1))/eg;
として URL エンコードした結果を見ないとわかりません。

> フォームが書いてあるHTMLの文字コードはeucにしています。
> その場合は,コンバートする必要がないということでしょうか?
NN4, NN6, IE4, IE5 あたりなら、フォームの書いてある HTML と
同じエンコーディングで、フォームデータを送ってきますので、
フォームの書いてある HTML と、処理するデータのエンコーディングが
一致しているなら jcode::convert は必要ありません。

ただし、これは規格として明文化されているわけではないので、
あくまでも NN と IE がそういう挙動をする、ということです。
もし Shift_JIS や ISO-2022-JP で送ってくるブラウザがいた
場合は化けます。


>>2169 ジュン
> この時間を 16 時間早めたいのですが
言語は何ですか? 以下は perl だと仮定して…。

$TimeDiff をどのように利用しているのかわからないと
なんとも言えませんが、秒数なら $TimeDiff = 60*60*16、
時間なら $TimeDiff = 16 でしょうか。

localtime を使っているなら、その前の行に $ENV{TZ}='JST-9'; と
書いておけばうまくいくかもしれません。

No. 2171 # スナフキン 2001/10/04 (木) 01:59:50
> その本は捨てましょう。
う〜ん、ここは68userのボードなので構わないのですが、
なんか、2ch化しているようでちょぴりショックだなぁ(^^ゞ

多分typeでしょう、本当にその様に書くことを勧めているのであれば
68userさんと同じ意見ですが…
だけど、椎さんがコマンドの本来の項を読まずに、理解しようとしないで
コピーしているだけであれば、椎さんの手抜きでしょうけど(^^ゞ
まあ、自分もはじめはそうだったので人の事を言えませんが(笑)

ちなみに、テストの為にコンバートした短い文字列を表示していませ
んか?昔のネスケでの挙動ですが、短い文字列の場合はブラウザで文字
コードの判別がつかずに化ける場合があります。
その場合はそこそこの長文を表示すると、うそのように表示される場合
が有りました。
原因はSJISとEUCの文字コードが一部かぶる為です。(自分のスクリプ
トはSJISで記述の為)

あと、よくやるのがEUCでコンバートして出力していながら、CGIの他の
表示部分で違うコードを出力していたり(結構気付かなかったりします)
プログラマーな人は、この様な無駄なトラブルを減らす為にALL EUCで
作る人が多いようですね。

>プログラミングのアイデアというかミソというか
自分の場合は、他人のスクリプトを解析することでいろいろ覚えました。
リファレンス以外はこの手法が一番お勧めです。
無駄を省いたルーチンは誰が作っても大体同じようなものになるはずです。
この掲示板のソースだってかなり勉強になるはずですよ(^^ゞ

>>2166 かな
「使い方」を読むどころか、コピー文章ですね(^^ゞ
ここまで典型的なのもはじめて見ました(笑)


ところで、最近JAVAに嵌まっているようですが、JAVAはJavaScriptと
perlとどちらに近い印象でしょうか?>68userさん
敬遠していたJAVAも覚えた方がいいかなぁ、と思う今日この頃(^^ゞ

No. 2172 # /tk 2001/10/04 (木) 02:02:53
>>2168
> jcode::convert(\$str, 'euc');
> で化けていて,これを削除したら化けなくなりました。
> なぜでしょうか?
とりあえず, getcode 関数の戻り値を確認してみましょう。
http://www.mikeneko.ne.jp/~lab/kcode/jcode.html#h2-1
http://www.din.or.jp/~ohzaki/perl.htm#JP_Code

>>2157
>> スライス?
> すみませんが,意味がわかりませんでした。
ありゃ。すみません。
>>2158 68user
> $file1[9] が正しい、ってことでしょう。
という意味でしたが, 断言する自信が無いのと
もし, 意図的にやっている事ででしたら
その理由が聞きたかったもので…

ちなみにスライスについては
http://www.context.co.jp/perlnews/bn/perl-newsletter-0010.html
http://www.context.co.jp/perlnews/bn/perl-newsletter-0013.html
が参考になると思います。

No. 2173 # ジュン [URL] [E-mail] 2001/10/04 (木) 02:21:11
>68userさん

素早い回答と、明確のお答えありがとうございます。

使っている言語はperlで、秒数の設定により解決しました。ありがとうございました。

No. 2174 # 2001/10/04 (木) 21:46:47
>>2170 68user
> 一致しているなら jcode::convert は必要ありません。
必要ないということは,あってもいいのでしょうか。
つまりeucをeucにコンバートする処理をしても問題はないんですよね?
そうだとしたら,今回の問題はまだ解決できていないということですね。

>>2171 スナフキン
> コピーしているだけであれば、椎さんの手抜きでしょうけど(^^ゞ
ええ,その通りです。まだわからないことが多いので,とりあえず(^^;

> そこそこの長文を表示すると、うそのように表示される場合
> が有りました。
そうかもしれません。ただ,短い文字列を入力するようにしていますので,
根本的に解決しないとダメですね。

> CGIの他の表示部分で違うコードを出力していたり
イメージできないんですが,具体的にどんな場合でしょうか。
エディタでeucで保存するようにしているのですが,
これだけではeucにならないものでしょうか。

> この掲示板のソースだってかなり勉強になるはずですよ(^^ゞ
機種依存文字の検出のところなど,参考にしたいなと思っていました。
とはいえ,今日初めてソースを見たのですが,
理解するのに,かなり時間がかかりそうです。

>>2172 /tk
> とりあえず, getcode 関数の戻り値を確認してみましょう。
おお,これは使えそうですね。やってみます。

> ちなみにスライスについては
なるほど〜。よくわかりました。
必要がないのにスライスを使っていたことになるわけですね。
意図的でなくて申し訳ない感じです。

No. 2175 # TOM 2001/10/04 (木) 23:17:10
こんにちは、はじめましてTOMです。
初級アマチュアプログラマーです。
ちょっと自分で解決できなかったので質問を聞いてください。

・モジュールAに、ライブラリlib30.soをリンクしています。
・モジュールBに、ライブラリlib40.soをリンクしています。
・さらに、ライブラリlib40.soの中で、ライブラリlib30.soの中の関数Func09が
    使用されています。
ライブラリlib30.soの中の関数Func09が修正されました。
再コンパイル、再リンクは、
全て(モジュールA・モジュールB・lib30.so・lib40.so)
行わなければならないのでしょうか?
よろしくおねがいします。

No. 2176 # 68user 2001/10/05 (金) 11:59:17
>>2175 TOM
Func09 の引数の数や、引数の型、戻り値の型を変更しましたか?
また、Func09 から他の部分のグローバル変数を参照するところ
を変更しましたか?

いずれの変更もしてないなら、ライブラリ利用側の再コンパイル・
再リンクは不要です。

引数や戻り値を変えた (=インタフェースを変えた) なら、
再コンパイル・再リンクのし忘れを防ぐため、メジャー番号を
    lib30.so.1 -> lib30.so.2
などと上げた方がよいでしょう。


>2174
>> 一致しているなら jcode::convert は必要ありません。
> 必要ないということは,あってもいいのでしょうか。
あってもよいです。僕は必ず jcode::convert は付けます。

> つまりeucをeucにコンバートする処理をしても問題はないんですよね?
本来問題ないのですが、Shift_JIS の半角カナと EUC-JP を正確に
判別することはできないので、EUC-JP な半角カナを Shift_JIS の
文字列だと誤認してしまい、EUC-JP に変換しようとする、ということは
あります。

一応 jcode.pl がエンコーディングを自動判別する際は、「Shift_JIS と
して解釈できる部分の長さ」と「EUC-JP として解釈できる部分の長さ」を
比較して長さが長い方を採用しますが、もちろんこれでも完璧では
ありません。

# たしか両方の長さが一致したら、EUC-JP とみなされたと思う。

> 必要がないのにスライスを使っていたことになるわけですね。
いいえ、@a[0] はスライスを使っているわけではありません (よね?)。
perl がおせっかいなので @a[0] -> $a[0] という読み替えをしている
だけです。
    % perl -we '@a=(100,200);print "@a[0]\n"'
    Scalar value @a[0] better written as $a[0] at -e line 1.
    100


>>2171 スナフキン
> ところで、最近JAVAに嵌まっているようですが、JAVAはJavaScriptと
> perlとどちらに近い印象でしょうか?>68userさん
うーん、どっちも遠いですねぇ…。でもまぁ僕がやってるのは
サーバサイドの方なので、どちらかと言えば perl ですか。
でも、perl とは似てないですね。

とにかくクラス設計が楽しいです。

No. 2177 # かな 2001/10/05 (金) 13:34:44
すいませんでした。
以後気を付けます。。

No. 2178 # SA [E-mail] 2001/10/05 (金) 14:54:15
はじめまして。

ネットワーク関係の関数でちょっと質問なのですが。

inet_aton(hostname)になっていますがこれをinet_aton (ipaddres)
にしても問題はないのでしょうか?

hostnameが解決されていない場合、IPアドレスをそのまま
使用してみたのですが表面上問題はでていませんが、
内部的にどうかまで分からなかったので。

どなたか教えて下さい。

分かり難い内容の書き込みになってすみません。

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