encode/decode generelle Frage

06/11/2010 - 15:13 von Wolf | Report spam
Hallo.

Ich bin grade an einem Projekt wo ich zum erstenmal encode/decode
benutzen muß. Um mir ein bischen Gewißheit zu verschaffen schrieb ich
folgendes Program: (Perl 5.10, windows xp)
#!/usr/bin/perl
use strict;
use warnings;
use Encode qw( encode decode );
use feature 'say';


my $t = 'GroàŸzà¼giges Anwesen mit besonderem Flair und viel Potential';

my $x = decode ('utf8', $t);
my $y = encode ('iso-8859-1', $x);
my $z = encode ('cp437', $x); #doscmd window

say ' input: ', $t;
say 'output: ', $x;
say '8859-1: ', $y;
say ' cp437: ', $z;
-ENDE
Das Ergebnis: nichts wird korrekt konvertiert.

nach einigem Nachlesen testete ich das Script nochmal, diesmal mit der
folgenden Änderung:

my $t = shift;

und von der commandline:
prompt> test.pl "GroàŸzà¼giges Anwesen mit besonderem Flair und viel
Potential"
Das Ergebnis: diesmal ist alles korrekt.

*****************

Meine Frage nun :
WENN ich in einem Script einen bereits formatierten UTF8 string HABE,
wie bringe ich Perl bei, diesen String genauso zu benutzen wie den
'importierten' ???

Gruß, Wolf

foreach (
reverse split(
/\d/, "m1o2c3.4p5e6e7h8s9a0l9l8i7r6e5u4g3\@2f1l0o1w"
)) { print; }
 

Lesen sie die antworten

#1 Peter J. Holzer
06/11/2010 - 23:59 | Warnen spam
On 2010-11-06 14:13, Wolf wrote:
Ich bin grade an einem Projekt wo ich zum erstenmal encode/decode
benutzen muß. Um mir ein bischen Gewißheit zu verschaffen schrieb ich
folgendes Program: (Perl 5.10, windows xp)
#!/usr/bin/perl
use strict;
use warnings;
use Encode qw( encode decode );
use feature 'say';


my $t = 'GroàŸzà¼giges Anwesen mit besonderem Flair und viel Potential';



In welchem Encoding ist das Script gespeichert?

Ruf an dieser Stelle folgende Funktion

sub dumpstr {
my ($s) = @_;

print utf8::is_utf8($s) ? "char" : "byte";
print ":";
for (split //, $s) {
printf " %#02x", ord($_);
}
print "";
}

mit

dumpstr($t)

auf, damit wir wissen, was wirklich in $t steht.

hp

Ähnliche fragen