dedlfix: kästchen in dem 0095 steht zu etwas brauchbarem umwandeln

Beitrag lesen

Tach!

alles klar also erstma wenn ich das zeichen einzeln in einer textdatei speicher  ergibt das in hexadezimal C2 95 0A da entspricht dann ja das C2 95 dem steuerzeichen und das 0A keine ahnung

Danke, mit den genauen Werten können wir nun mehr als nur Vermutungen anstellen.

Das 0A ist ein LF (LineFeed). Das C2 95 ist wie gesagt kein Bullet sondern das Steuerzeichen U+0095. Wenn du das als Bullet eingibst und dein Editor speichert das als C295, dann ist der eindeutig defekt. Er übersetzt offensichtlich 1:1 das Windows-1252 nach Unicode U+0000..U+00FF, was falsch ist, weil die Windows-1252-Zeichen zwischen 0x80 und x09F an anderer Stelle in Unicode angesiedelt sind. Windows-1252 ist eben kein ISO-8859-1.

Jedenfalls, wenn du mit Zeichen arbeitest, musst du dieses Steuerzeichen ersetzen.

hier dann einma die problem quelldatei:
Quelldatei

Die ist bis auf die falschen Bullets soweit UTF-8.

und hier mein perl code:

Du erzeugst ja eine Ausgabedatei. Wenn ich mir diese anschaue, dann sehe ich sinngemäß: ...ures:C2<br> Konverter...
Das heißt, dass das 95 übersetzt, der Rest jedoch ignoriert wurde. Das Script liest also wohl nicht die Quelldatei als UTF-8 ein.
Nächster Versuch, Ausgabedatei löschen und perl mit -C aufrufen (das Internet hat mir verraten, dass dann die Eingaben als UTF-8 interpretiert werden). Ergebnis ist bei mir: ...ures:<br> Konverter... und auch die Umlaute sind immer noch gültiges UTF-8.

dedlfix.