Thread Mit perl einen "wide character" ausfindig machen (3 answers)
Opened by smallish at 2007-09-24 00:10

sid burn
 2007-09-24 00:27
#99901 #99901
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Möchtest du nur die Fehlermeldung weg bekommen?

Diese Fehlermeldung kommt eigentlich nur dann wenn du in einer Variablen UTF8 Codierte Daten gespeichert hast, und diese Variable dann z.B. einfach mit print ausgiebst.

Perl selber versuchst dann nämlich die Zeichen umzukonvertieren nach iso-8859-1. Wenn es aber ein Unicode Zeichen ist das in iso-8859-1 nicht vokommt kann er nicht konvertieren und es kommt die gesagte Fehlermeldung.

Wenn du aber UTF8 Daten hast und möchtest sie wirklich auch nur ausgeben ohne Fehlermeldung solltest du lediglich mit binmode STDOUT z.B. auf UTF8 setzen, das geht so:
Code (perl): (dl )
binmode STDOUT, ':utf8'


Wenn du natürlich ein anderes Filehandle nutzt musst du natürlich anstatt STDOUT dein genutzes Filehandle hinschreiben. Danach gibt er auch UTF8 Daten ohne die Fehlermeldung aus.


Wenn du eine Datei zum Lesen öffnest das utf8 codiert ist solltest du auch sichergehen das du die Datei folgendermaßen öffnest:
Code (perl): (dl )
open my $fh, '<:utf8', 'utf8file.txt'  or  die $!


Wenn du UTF8 Daten in einem Filehandle schreibst solltest du die Datei entweder so öffnen.
Code (perl): (dl )
open my $fh, '>:utf8', 'utf8file.txt'  or  die $!

oder wenn du nicht '>:utf8' schreibst mit binmode das Filehandle auf utf8 setzen
Code (perl): (dl )
binmode $fh, ':utf8'


Danach kommen auch keine Fehlermeldungen mehr.
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread Mit perl einen "wide character" ausfindig machen