Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Re^3: UTF-8 to Latin1 - unmatched characters?

by ikegami (Pope)
on Mar 27, 2008 at 17:41 UTC ( #676808=note: print w/replies, xml ) Need Help??

in reply to Re^2: UTF-8 to Latin1 - unmatched characters?
in thread UTF-8 to Latin1 - unmatched characters?

I was going to recommend passing only characters that don't exist in iso-latin-1 to unidecode using a fallback handler to encode. It works, but I'm getting an error (Close with partial character.) when the file handle is closed, and I have no idea how to fix it.

Here's the code anyway:

use strict; use warnings; use PerlIO::encoding qw( ); use Text::Unidecode qw( unidecode ); use constant FB_UNIDECODE => sub { unidecode(chr($_[0])) }; my $file = '...'; local $PerlIO::encoding::fallback = FB_UNIDECODE; open(my $fh, '>:encoding(iso-8859-1)', $file) or die("Unable to create file \"$file\": $!\n"); print $fh "abc\x{201C}def\x{2013}ghi";

Replies are listed 'Best First'.
Re^4: UTF-8 to Latin1 - unmatched characters?
by uncommon13 (Novice) on Mar 28, 2008 at 14:56 UTC
    Dear ikegami,

    This is exactly what I wanted :)

    It's absolutely brilliant to think about using the fallback handler.

    I don't get the error (Close with partial character.) which u mentioned though.

    Many thanks again :)

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://676808]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (8)
As of 2019-06-20 20:04 GMT
Find Nodes?
    Voting Booth?
    Is there a future for codeless software?

    Results (91 votes). Check out past polls.