The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# This file is encoded in UTF-2.
die "This file is not encoded in UTF-2.\n" if q{あ} ne "\xe3\x81\x82";
######################################################################
#
# 004_cinquecent_2012-10-21_OKWave.pl for testing jacode.pl
#
# Copyright (c) 2016 INABA Hitoshi <ina@cpan.org>
#
######################################################################

sub BEGIN { eval q{ use utf8; } }
require 'jacode.pl';

print "1..2\n";

$moji = '%83%7D%83E%83X';

#                       V---------------- ここを大文字の "C" にします
#$moji =~ s/%(..)/pack("c",hex($1))/ge;
 $moji =~ s/%(..)/pack("C",hex($1))/ge;

&jcode'convert(*moji,"utf8","sjis");

if (unpack('H*',$moji) eq 'e3839ee382a6e382b9') {
    print "ok - 1 $^X $0\n";
}
else {
    print "not ok - 1 $^X $0\n";
}

if ($moji eq 'マウス') {
    print "ok - 2 $^X $0\n";
}
else {
    print "not ok - 2 $^X $0\n";
}

__END__

Perl utf8上でshiftjisをデコード
http://netricoh.okwave.jp/qa7759725.html

以下の環境にてURLエンコード(shiftjis)された文字を、UTF8として
ブラウザに表示させたいのですが、上手く表示されません。

環境:
サーバ:linux apache レンタルサーバ
※Encode.pm、Jcode.pm無し。追加モジュールインストール不可。
Perl version: 5.006001
ソースエンコード:utf-8

実行ソース:
------------------------------------
use utf8;
require 'jacode.pl';

# $mojiに予めURLエンコードされた文字が格納されています。
# 例として「マウス」デコード前(%83%7D%83E%83X)とします。

# URLデコード
$moji =~ s/%(..)/pack("c",hex($1))/ge;

# デコードされたsjis文字をUTF8へコンバート
jcode::convert(\$moji,"utf8","sjis"); 

print($moji);

-----------------------------------

例のように「マウス」と言う文字が$mojiに格納されている場合、
以下のような文字化けとなってしまいます。

XXXXXXX

正常にマウスと表示させるにはどうすればよろしいのでしょうか。
アドバイスを宜しくお願いします。

投稿日時 - 2012-10-21 20:13:34