プロが教えるわが家の防犯対策術!

「埼玉」を「%BA%EB%B6%CC」にしなければいけないのですが、これはなんという文字コードなのか分かりますでしょうか。
変換の命令文まで教えていただけるとうれしいです。
ご教授お願いします。

A 回答 (5件)

 #3です。



>jcode::convert(*value,'sjis');
…と変更したとのことですが、
>jcode::convert(\$value,'euc');
…と変更してみてください。実際にやって見たところ、私の環境では、変換後入力欄が文字化けを起こす不具合がありますが、変換自体は成功しています。

 上述の一文の文法的なことは分かりません。perlのことをよく知らないくせに回答し、申し訳ないです(汗)
    • good
    • 0
この回答へのお礼

ありがとうございました。助かりました。

お礼日時:2003/09/07 15:51

こんにちは



     埼    玉
EUC   BAEBh  86CCh
JIS   3A6Bh  364Ch
SJIS   8DE9h  8BCAh

です。
    • good
    • 0

> 「埼玉」を変換すると「%8d%e9%8b%ca」なりました。



 変換元の文字コードがシフトJISのようです。
 jcode.pl の機能を利用するとうまく行くかもしれません。
 ご自分でコーディングできるのであれば、参考URLの情報さえあれば解決できると思います。

参考URL:http://homepage2.nifty.com/BASH/WWW/make_code.html

この回答への補足

ありがとうございます。
下で出しているソースで、
jcode::convert(*value,'sjis');
に変えてみましたが、結果はeucと同じでした。
結果が同じと言うことは何かが間違っているのでしょうか?

補足日時:2003/09/07 09:40
    • good
    • 0

EUCをURLエンコードしたものだと思います。

    • good
    • 0

URLエンコード/デコード


ですね。

参考URL:http://techtips.belution.com/ja/perl/0000/

この回答への補足

ありがとうございます。
教えていただいたURLを元に以下のソースを作り、「埼玉」を変換すると「%8d%e9%8b%ca」になりました。
何か違うようです。
ソース間違ってますでしょうか?

-----ここから
#!/usr/local/bin/perl

require './jcode.pl';

my ($buffer, @pairs, %FORM);
if ($ENV{'REQUEST_METHOD'} eq "POST") {
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
} else {
$buffer = $ENV{'QUERY_STRING'};
}
@pairs = split(/&/,$buffer);
for (@pairs) {
my ($name, $value) = split(/=/, $_);
$value =~ tr/+/ /;
$value =~ s/%([a-f\d]{2})/pack 'H2',$1/egi;
jcode::convert(*value,'euc');
$FORM{$name} = $value;
}
$str = $FORM{'input'};
$str =~ s/([^\w ])/'%' . unpack('H2', $1)/eg;

print "Content-type: text/html\n\n";
print <<"EOM";
<html>
<head>
<title>文字コード変換</title>
</head>
<body>
<form action="a.cgi" method="post">
<input type="text" name="input" size="60" maxlength="255" value="$FORM{'input'}">
<input type="submit" value="変換">
</form>
それは、$str みたいです。
</body>
</html>
EOM
exit;

補足日時:2003/09/03 14:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!