1 package Encode::JP::JIS;
3 use base 'Encode::Encoding';
7 our $VERSION = do { my @r = (q$Revision: 1.0 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
9 # Just for the time being, we implement jis-7bit
12 my $canon = '7bit-jis';
13 my $obj = bless {name => $canon}, __PACKAGE__;
16 sub name { return $_[0]->{name}; }
20 my ($obj,$str,$chk) = @_;
23 return Encode::decode('euc-jp', $res, $chk);
28 my ($obj,$str,$chk) = @_;
29 my $res = Encode::encode('euc-jp', $str, $chk);
34 use Encode::CJKConstants qw(:all);
41 ($RE{JIS_0212}|$RE{JIS_0208}|$RE{ISO_ASC}|$RE{JIS_KANA})
45 my ($esc, $str) = ($1, $2);
46 if ($esc !~ /$RE{ISO_ASC}/o) {
47 $str =~ tr/\x21-\x7e/\xa1-\xfe/;
48 if ($esc =~ /$RE{JIS_KANA}/o) {
49 $str =~ s/([\xa1-\xdf])/\x8e$1/og;
51 elsif ($esc =~ /$RE{JIS_0212}/o) {
52 $str =~ s/([\xa1-\xfe][\xa1-\xfe])/\x8f$1/og;
63 ((?:$RE{EUC_C})+|(?:$RE{EUC_KANA})+|(?:$RE{EUC_0212})+)
67 ( $str =~ tr/\x8E//d ) ? $ESC{KANA} :
68 ( $str =~ tr/\x8F//d ) ? $ESC{JIS_0212} :
70 $str =~ tr/\xA1-\xFE/\x21-\x7E/;
71 $esc . $str . $ESC{ASC};
75 (\Q$ESC{KANA}\E|\Q$ESC{JIS_0212}\E|\Q$ESC{JIS_0208}\E)/$1/gox;
81 $$r_str =~ s/$RE{EUC_0212}/$CHARCODE{UNDEF_EUC}/go;
91 Encode::JP::JIS -- internally used by Encode::JP