On Sun, 07 Dec 2003 16:33:50 +0900 Tatsuhiko Miyagawa <[EMAIL PROTECTED]> wrote:
> > Maybe a way to globally force UTF8 (or some other encoding) to be used > > on b=>u promotion is a good idea, but AFAIK it does not yet exist. > > Can it be implemented as pragma? If it can be, it'd be very > convinient. what Japanese people wants may be something like JISAutoDetect? ### ^ package Encode::JP::Auto; use strict; use warnings; use Carp; our $VERSION = '0.00'; use Encode qw(); use base qw(Encode::Encoding); __PACKAGE__->Define('JISAutoDetect'); sub needs_lines { 1 } sub perlio_ok { 0 } my %Jobj = ( euc => Encode::find_encoding('euc-jp'), jis => Encode::find_encoding('7bit-jis'), sjis => Encode::find_encoding('shift-jis'), ); sub _getcode { # very rough; [jJ]code::getcode? my $s = shift; return $s =~ /\e/ ? 'jis' : $s =~ /[\201-\215\220-\240]/ ? 'sjis' : 'euc'; } sub decode($$;$) { my ($obj, $str, $chk) = @_; my $code = _getcode($str); my $ret = $Jobj{$code}->decode($str); $_[1] = "" if $chk; return $ret; } sub encode($$;$) { croak "encode() isn't implemented"; } 1; __END__ ### $ #example use Encode::JP::Auto; for my $f (@ARGV) { open FH, "<:encoding(JISAutoDetect)", $f or die; while (<FH>) { tr/\x{30A1}-\x{30F3}/\x{3041}-\x{3093}/; # katakana to hiragana print; } close FH; } Regards, SADAHIRO Tomoyuki