URLエンコードについて

[上に] [前に] [次に]
proton [E-Mail] 2000/03/06(月) 22:53:54
PerlでCGIを作成していますが、PerlでCookieを設定する際に、
URLエンコードをするために下記の様な処理をしています。

$data =~ s/[^0-9a-zA-Z]/"%".(unpack("H2",$&))/eg;

これをJavascriptでCookieを取り出して表示する際に組み込み関数unescape()を
使用して表示させようと思ったのですが、
Javascriptでのescape()関数の結果と上記のPerlでのエンコード処理の結果が異なっているので
うまくデコードすることができません。

Perlでのエンコード方法がそもそも誤っているのでしょうか?
NN4.06以降は日本語がunicodeでないとだめということと
絡んでいるような気がしますが。

JavascriptとPerlの間でエンコード、デコードができるような関数と処理の組み合わせを
ご存じな方がいらっしゃったら、教えていただけないでしょうか?

proton 2000/03/06(月) 23:38:02
[[解決]]
すいません。自己フォローです。

画面に表示しているコードがSJISでPerlがEUCで処理していたため
結果が異なっていました。
変換する前に

&jcode'convert(*data,'sjis');

を実行してからやったら同じ結果になりました。
お騒がせしました。

びーだま [E-Mail] 2000/03/07(火) 00:42:01
ところで、新しい、NetscapeやIEのJavaScriptでの
escape(), unescape() 関数で扱われる Unicode の場合の問題
は解決できましたか?

%uxxxx みたいな感じになると思うんですが。
うまく行きますか? 成功していたら教えて下さい。

[上に] [前に] [次に]