$input=from_utf8({-string=>$input,-charset=>'iso8859-15'}) or die "Data could not be converted!\n";
1 2 3 4 5 6 7 8 9 10 11
open my $IN,'<:encoding(utf-8)','input.txt'; open my $OUT,'>:encoding(iso-8859-15)','output.txt'; my $line; while($line=<$IN>) { print $OUT $line; } close IN; close OUT;
1 2 3 4 5 6 7 8 9 10 11
open my $IN,'<:encoding(utf-8)','input.txt'; open my $OUT,'>:encoding(iso-8859-15)','output.txt'; my $line; while($line=<$IN>) { print $OUT $line; } close IN; close OUT;
Quoteutf8 "\xF6" does not map to Unicode at MeinSkript.pl line 13, <$IN> line 36.
QuoteHat mir ausgegeben, dass es eine "ISO 8 Bit-Kodierung" besitzt. Wenn das nicht UTF-8 ist, was dann?
ISO-8859 text, with very long lines
Guest Glühbirneausprobiert, aber hier bekomme ich bei jedem Umlaut folgende Fehlermeldung:
utf8 "\xF6" does not map to Unicode at MeinSkript.pl line 13, <$IN> line 36.
2011-06-24T09:57:19 clmsFür mich sieht es so aus, dass die Datei schon ISO-Codiert ist.
Denn das Byte "\xF6" entspricht einem Zeichen/Umlaut in ISO-8859-x während bei UTF-8 da mindestens zwei Bytes für benötigt werden.
2011-06-24T09:59:21 pqalso, perl meckert, dass es kein utf8 ist, `file` sagt, dass es kein utf8 ist, aber du magst immer noch glauben, dass es utf8 ist, weil ...?
QuoteWieso sie ISO- und nicht UTF-8-codiert ist, kann ich Dir auch nicht sagen.
Mein Tipp: nimm es einfach hin.
Quote@renee: Das eine UTF-8 -> ISO Konvertierung bei Zeichen, die vom jewiligen ISO-Code nicht unterstützt werden, nicht funktioniert, ist zwar ein ein sehr verbreitetes Standardproblem, aber die Fehlerbeschreibung von Glühbirne deutet darauf hin, dass es hier einmal nicht die Ursache ist. Wenn ein nichtunterstütztes Zeichen die Ursache wäre, müsste das Script entweder komplett abbrechen oder die Umlaute müssten durchkommen, sie werden von ja von ISO-8859-15 unterstützt.
ä ö ö
Guest GlühbirneIch meine, es steht doch da ... UTF-8, ÄäÖöÜüß ...
Guest Glühbirnedass das ganze bereits im ISO-Format ist. Aber das kann schlecht sein, sonst würde ich mit ISO-8859-15 ja kaum so etwas bekommen:
Code: (dl )ä ö ö
2011-06-24T10:15:57 pqwo genau steht utf8?
2011-06-24T10:15:18 pqja wo bekommst du das denn?
ist dein terminal schon mit latin1 gestartet worden? oder setzt du es erst in einem schon laufenden terminal? dann reicht das nicht aus.
Guest Glühbirne2011-06-24T09:57:19 clmsFür mich sieht es so aus, dass die Datei schon ISO-Codiert ist.
2011-06-24T09:57:19 clms]Wieso sie ISO- und nicht UTF-8-codiert ist, kann ich Dir auch nicht sagen.
Mein Tipp: nimm es einfach hin.
Kann ich nicht. Ich muss das Ganze in ISO-8859-15 an eine Maschine schicken, die mit UTF-8 noch nicht ganz klar kommt, deshalb.
Guest Glühbirne... weil mir das Terminal nur dann keine fehlerhafte Zeichen gibt, wenn ich den Zeichensatz auf UTF-8 umstelle. Perl kann meckern, was es will, 'file' kann meckern, was es will, aber der Server, an den ich die Datei schicken muss, meckert auch - nämlich dass das Ganze nicht ISO-8859-15 kodiert ist, also brauche ich eine solche Datei.
Guest Glühbirne(...)und folgenden Code:
(...)
Code (perl): (dl )1 2 3 4 5 6 7 8 9 10 11open my $IN,'<:encoding(utf-8)','input.txt'; open my $OUT,'>:encoding(iso-8859-15)','output.txt'; my $line; while($line=<$IN>) { print $OUT $line; } close IN; close OUT;