
「テスト」を以下でデコードすると「繝・せ繝・」となってしまいます。
URL
test.cgi/q_テスト/
$ENV{'PATH_INFO'}と「q_テスト」を使うことを前提として、「テスト」と正常に取る方法はありますでしょうか。
ご教授お願いします。
$buffer = $ENV{'PATH_INFO'};
$buffer = substr($buffer,1);
@lens = split(/\//,$buffer);
foreach $len(@lens){
($name, $value) = split(/_/,$len,2);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
&jcode'convert(*value,'sjis');
$value =~ s/\t/ /g;
$value =~ s/\n//g;
$FORM{$name} = $value;
}
No.3ベストアンサー
- 回答日時:
>実はURLエンコードしているのですが、
>そのURLをメールで送った場合、
>それをクリックするとアドレスが自動的に
>日本語になってしまうため、
>このような問題が起こっています。
これを回避したいのであれば、ブラウザの知らない独自の変換方法を使用すれば大丈夫な気がします。
s/(.)/sprintf("%02.x",ord($1))/eg;
送るときこんな感じに変換して、
s/(..)/pack("C", hex($1))/eg;
受け取るときこんな感じにすれば問題ないのでは?
この方法ならブラウザが勝手に文字コードを変換することもないだろうから、受け取るときに文字コードをきめうちにできるし。
(文字コードの誤認がない)
No.2
- 回答日時:
> 「テスト」を以下でデコードすると「繝・せ繝・」となってしまいます。
ということは、「テスト」は「UTF-8」にエンコードされているということです。しかし、jcode.pl は UTF-8 に対応していないので、変わりに Jcode.pm か Encode.pm を使う必要があります。
もし、Perl のバージョンが 5.8.0 以上なら、標準モジュールの Encode.pm が使えます。それより前のバージョンなら、Jcode.pm を使ってください。
Jcode.pm についてはこちらを参照してください。
# Jcode.pm 作者のページ
http://openlab.ring.gr.jp/Jcode/index-j.html
# Jcode.pm の日本語ドキュメント
http://perldoc.jp/docs/modules/Jcode-0.82/Jcode. …
Encode.pm についてはこちら。
# Encode - 文字コードの変換
http://search.cpan.org/~dankogai/Encode-1.99/Enc …
# Encode::Guess - 文字コードの調査
http://search.cpan.org/~dankogai/Encode-1.99/lib …
Encode を利用した例
・スクリプトの先頭に下記を追加
use Encode qw/from_to/;
use Encode::Guess qw/shiftjis euc-jp 7bit-jis utf8/;
・質問のコードの一部を変更
&jcode'convert(*value,'sjis');
↓
my $enc = guess_encoding($value);
if (ref $enc) {
from_to($value, $enc->name, 'shiftjis');
}
※スクリプトの字下げに全角空白を使っているので、コピーする場合はタブなどに変換してください。
# Jcode は使ったことがないのでサンプルは書けませんが、ほとんど jcode.pl と同じ感覚で使えるようです。
参考URL:http://openlab.ring.gr.jp/Jcode/index-j.html,http://search.cpan.org/~dankogai/Encode-1.99/Enc …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- HTML・CSS ただいま勉強始めたての初心者です。フォームを縦並べにしたいです。 2 2022/11/20 17:18
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IMAP4でsubjectが検索ヒットしない
-
jisコードで16進数の『3c』か...
-
Cookie変数の命名について
-
1つのサイトで文字コードが混在...
-
MIMEでエンコードされたMailのS...
-
メール(iso-2022-jp-2)のデコ...
-
エクセルで数値を全角文字(カ...
-
VBA 文字に半角が含まれて...
-
CSVファイルの中で、「 , 」カ...
-
Delphi6 Delimiterの使い方
-
JPY ¥1,500.00は日本円でお幾ら?
-
何度も出現する文字列AAのうち...
-
正規表現
-
シェルスクリプトで文字列置換
-
Jcodeによるカタカナ→ひらがな変換
-
マッチングの方法
-
正規表現の勉強方法
-
半角と全角の文字数カウント方法
-
Pythonでテトリスを作っている...
-
結合で、条件左右で型が違った...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
pythonエラー
-
1つのサイトで文字コードが混在...
-
メール(iso-2022-jp-2)のデコ...
-
BASP21によるbase64のデコード...
-
Perl:ファイル名だけ文字化けする
-
Encodeについて
-
quoted-printableのアルゴリズム
-
「繝・せ繝・」となる文字化け
-
Perl 文字化け
-
jcode.plとはどんなものですか
-
Cookie変数の命名について
-
Mysql-php デーベースサーバで...
-
文字コードについて
-
CASLIIの数値データ入出力
-
index関数で日本語を使用する場...
-
外部サイトの内容の取得
-
httpリクエストのbody部分について
-
IMAP4でsubjectが検索ヒットしない
-
テキストファイルから日本語部...
-
CSVファイルの中で、「 , 」カ...
おすすめ情報