Martin 'Kingpin' Thurn <[EMAIL PROTECTED]> writes:
>  It seems to me that the main problem is that Encode does not use IANA
>registered names.  

It is supposed to have IANA names as aliases.

>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.  

Possibly true, but Encode has its own alias scheme as I wasn't aware
of I18N::Charset at the time.

>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.
>>

Reply via email to