On Sun, Sep 22, 2002 at 11:06:27AM +0800, Autrijus Tang wrote: > Dan san, > > > a) if it uses 'Encode' as module name it needs to work both in 5.8 > > and 5.6.1. Bottom line is that backported version will not breach > > what it is now. If it ain't broke, don't fix it (and 5.6.1 was > > broke Unicode-wise) b) if you just implemented Encode functionality > > in perl 5.6.1 but incompatible w/ 5.8, give it a different name; > > i.e) Encode::Compat > > Incidentally I have just finished a skeleton of Encode::compat, named > after Apache::compat (lower case) since it's a 'pragma' for Encode > usage, instead of a subcomponent of Encode. > > It is available on CPAN, or at: > > http://www.autrijus.org/Encode-compat-0.01.tar.gz > > All it does is translate whatever call it receives into Text::Iconv, or > (in the future) Unicode::MapUTF8 to perform the actual work. > > The is_utf8(), _utf8_on() and _utf8_off() calls are performed by the > method native to the perl version -- 5.6.1 would use pack/unpack, 5.6.0 > uses tr//CU, etc.
If one has the GNU recode installed one can also fall back to Convert::Recode, and if all else fails one can do at least the Latin-1 <-> UTF-8 byte level conversion rather trivially with the: s/([\x80-\xFF])/chr(0xC0|ord($1)>>6).chr(0x80|ord($1)&0x3F)/eg; s/([\xC2\xC3])([\x80-\xBF])/chr(ord($1)<<6&0xC0|ord($2)&0x3F)/eg; -- Jarkko Hietaniemi <[EMAIL PROTECTED]> http://www.iki.fi/jhi/ "There is this special biologist word we use for 'stable'. It is 'dead'." -- Jack Cohen