1# 2# $Id: Constants.pm,v 2.0 2005/05/16 19:07:56 dankogai Exp $ 3# 4 5package Jcode::Constants; 6 7use vars qw($RCSID $VERSION); 8 9$RCSID = q$Id: Constants.pm,v 2.0 2005/05/16 19:07:56 dankogai Exp $; 10$VERSION = do { my @r = (q$Revision: 2.0 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r }; 11 12use Carp; 13 14use Exporter; 15use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); 16@ISA = qw(Exporter); 17@EXPORT = qw(); 18@EXPORT_OK = qw(%CHARCODE %ESC %RE); 19%EXPORT_TAGS = ( 'all' => [ @EXPORT_OK, @EXPORT ] ); 20 21use vars qw(%CHARCODE %ESC %RE); 22 23my %_0208 = ( 24 1978 => '\e\$\@', 25 1983 => '\e\$B', 26 1990 => '\e&\@\e\$B', 27 ); 28 29%CHARCODE = ( 30 UNDEF_EUC => "\xa2\xae", # �� in EUC 31 UNDEF_SJIS => "\x81\xac", # �� in SJIS 32 UNDEF_JIS => "\xa2\xf7", # �� -- used in unicode 33 UNDEF_UNICODE => "\x20\x20", # �� -- used in unicode 34 ); 35 36%ESC = ( 37 JIS_0208 => "\e\$B", 38 JIS_0212 => "\e\$(D", 39 ASC => "\e\(B", 40 KANA => "\e\(I", 41 ); 42 43%RE = 44 ( 45 ASCII => '[\x00-\x7f]', 46 BIN => '[\x00-\x06\x7f\xff]', 47 EUC_0212 => '\x8f[\xa1-\xfe][\xa1-\xfe]', 48 EUC_C => '[\xa1-\xfe][\xa1-\xfe]', 49 EUC_KANA => '\x8e[\xa1-\xdf]', 50 JIS_0208 => "$_0208{1978}|$_0208{1983}|$_0208{1990}", 51 JIS_0212 => "\e" . '\$\(D', 52 JIS_ASC => "\e" . '\([BJ]', 53 JIS_KANA => "\e" . '\(I', 54 SJIS_C => '[\x81-\x9f\xe0-\xfc][\x40-\x7e\x80-\xfc]', 55 SJIS_KANA => '[\xa1-\xdf]', 56 UTF8 => '[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf][\x80-\xbf]' 57 ); 58 591; 60 61