RE: Resolving charset names with Encode

[email protected] ("Martin 'Kingpin' Thurn")
Newsgroups perl.unicode
Message-ID <[email protected]>
  It seems to me that the main problem is that Encode does not use IANA
registered names.  And ebcdic-cp-us didn't work because of a bug in
I18N::Charset (sorry about that).
  The proper solution IMO is to use the &add_enco_alias() function of
I18N::Charset.  In the meantime, I have studied the Encode documentation and
I have added some default aliases, and I will release a new version of
I18N::Charset soon.

 - - Martin

> -----Original Message-----
> From: Bjoern Hoehrmann [mailto:[email protected]]
> Sent: Wednesday, October 20, 2004 15:53
> To: [email protected]
> Cc: [email protected]
> Subject: Resolving charset names with Encode
>
>
> Hi,
>
>   What is currently the best way to resolve charset names to use them
> with Encode.pm? I would have expected that e.g.
>
>   Encode::decode('ebcdic-cp-us', '')
>
> would just work but it does not appear to know that alias. Then I've
> tried to use I18N::Charset as in
>
>   Encode::decode(I18N::Charset::enco_charset_name('ebcdic-cp-us'), '')
>
> which also fails. Then I've tried something simpler using the cp037
> alias
>
>   Encode::decode('cp037', '')
>   Encode::decode(I18N::Charset::enco_charset_name('cp037'), '')
>
> which both fail, too. In order to use the encoding with Encode it seems
> I have to use "CP37" which is not registered in the IANA registry... So
> this does not seem to work very well. It works better in other cases
> such as
>
>   Encode::decode('l1', '')                                   # fails
>   Encode::decode(I18N::Charset::enco_charset_name('l1'), '') # works
>
> Now I would have hoped there is a foo() in I18N::Charset that I could
> use as in
>
>   foreach my $name (I18N::Charset::foo)
>   {
>     my $alias = I18N::Charset::enco_charset_name();
>     Encode::Alias::define_alias($name, "'$alias'") if defined $alias;
>   }
>
> that would make
>
>   Encode::decode('l1', '');
>
> work, but it seems that there is no such routine... What could be done
> to improve this? Ideally I would like to reduce my code to deal with
> this stuff to at most
>
>   use I18N::Charset qw(...);
>
> preferably less.
>
> regards.
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.