ubuntuusers.de

winXP-codierte txt-Datei nicht codierbar - Umlauteproblem

Status: Gelöst | Ubuntu-Version: Xubuntu 19.10 (Eoan Ermine)
Antworten |

mux9

Anmeldungsdatum:
1. November 2009

Beiträge: 296

hi,

damals konnte ich anstatt mouspad, das keine ü-codiermöglichkeit mitbringt,

leafpad nehmen, das gibts heute nur als snap und

das mauert permissionmäßig :

mkdir: cannot create directory '/run/user/0': Permission denied
No protocol specified

die snaps richten sich bescheuerter Weise so ein, dass sie mit einer "anders" codierten Datei nicht können. Programmierersülze.

auch notepadqq gibts nur als snap (nat. auch mit nervigem Verzeichnis in meinem Baum).

notepadqq wird wohl auch mauern.

Wenn das Verz. wenigstens "bescheuertes-Verz-das-man-sieht-aber-nicht-loeschen-darf" heißen würde, würd das mein Opa verstehen, wäre es selbstredend. ☺

LO bekommt aus der txt auch keine ü's raus ☹

20200119.txt: text/plain; charset=unknown-8bit

🙄

"Liebe XUbuntuprogrammierer ..."

na ja - well!: weiß jemand, wie ich ohne snap-Programme die txt korrekt öffnen kann?

Danke!

mux

unbuntuS12

Anmeldungsdatum:
2. Juni 2010

Beiträge: 1816

Was sagt

file 20200119.txt

?

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11261

Wohnort: München

mux9 schrieb:

das mauert permissionmäßig :

mkdir: cannot create directory '/run/user/0': Permission denied
No protocol specified

die snaps richten sich bescheuerter Weise so ein, dass sie mit einer "anders" codierten Datei nicht können.

Die Fehlermeldung legt den Verdacht nahe, dass du versuchst ein Snap-Programm mit root-Rechten auszuführen - falls das der Fall ist: warum?

Den Zeichensatz kann man mit Programmen wie chardet (Paket python-chardet) zuverlässiger erraten lassen als mit file.

Statt mit Dateien mit einem veralteten Encoding zu arbeiten würde ich sie konvertieren - das geht z.B. mit einem Zeichensatz-Konverter - falls dir die Editoren darunter nicht liegen (oder sie Probleme haben die Datei zu öffnen), bleibt u.a. noch das in dem Wiki-Artikel erwähnte CLI-Tool iconv.

Udalrich

Anmeldungsdatum:
15. Mai 2019

Beiträge: 533

mux9 schrieb:

weiß jemand, wie ich ohne snap-Programme die txt korrekt öffnen kann?

MATEs Texteditor Pluma (Paket „pluma“) kann normalerweise jede Textdatei korrekt codiert öffnen; auch kann man beim Öffnen optional das Codierungsformat der Textdatei angeben für Dateien, wo die Autoerkennung nicht funktioniert.
Unter anderem deswegen benutze ich Pluma statt Mousepad.

Beim Abspeichern kann man optional auch eine gewünschte Codierung angeben. So ist die Umwandlung von ISO-Latein (Windows) nach UTF-8 (Linux) trivial.

P.S. Pluma ist die MATE-Version von Gedit aus GNOME und sieht optisch aus wie Mousepad.

mux9

(Themenstarter)

Anmeldungsdatum:
1. November 2009

Beiträge: 296

Danke!

@unbuntuS12

file 20200119.txt
20200119.txt: Non-ISO extended-ASCII text, with very long lines, with CRLF line terminators

@seahawk1986

... du versuchst ein Snap-Programm mit root-Rechten auszuführen

stimmt, dachte das funkt. dann

sudo leafpad 20200119.txt
mkdir: cannot create directory '/run/user/0': Permission denied

leafpad 20200119.txt
Failed to open file “/media/nutzer/stick-882D/20200119.txt”: '''Permission denied'''

@seahawk1986

chardet 20200119.txt
Der Befehl 'chardet' wurde nicht gefunden, kann aber installiert werden mit:...

keine Ahnung wieso. Installiert scheint es zu sein.

iconv habe ich noch nicht verstanden.

@Udalrich

...jede Textdatei korrekt codiert öffnen

plumar auch nicht:

...ch weià Ìber lange Zei...

mux

tomtomtom Team-Icon

Supporter
Avatar von tomtomtom

Anmeldungsdatum:
22. August 2008

Beiträge: 55442

Wohnort: Berlin

mux9 schrieb:

damals konnte ich anstatt mouspad, das keine ü-codiermöglichkeit mitbringt,

leafpad nehmen, das gibts heute nur als snap

Das leafpad nicht mehr in den Paketquellen ist, hat übrigens einen guten Grund: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=913765.

Die Software ist tot, das Projekt hat seit über 9 Jahren nichts mehr daran getan. Warum man überhaupt ein Snap baut für eine Software, die wegen der angegebenen Gründe aus den Quellen fliegt, ist eher die Frage...

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11261

Wohnort: München

mux9 schrieb:

@seahawk1986

... du versuchst ein Snap-Programm mit root-Rechten auszuführen

stimmt, dachte das funkt. dann

sudo leafpad 20200119.txt
mkdir: cannot create directory '/run/user/0': Permission denied

leafpad 20200119.txt
Failed to open file “/media/nutzer/stick-882D/20200119.txt”: '''Permission denied'''

Der Witz von snap ist ja gerade Programme in eine isolierte Umgebung zu stecken, in der sie möglichst wenig dürfen und nicht sie mit maximal möglichen Rechten zu nutzen...

@seahawk1986

chardet 20200119.txt
Der Befehl 'chardet' wurde nicht gefunden, kann aber installiert werden mit:...

keine Ahnung wieso. Installiert scheint es zu sein.

Ich denke nicht, dass das Paket python-chardet installiert ist, sonst würde er die Meldung nicht bringen.

So kannst du sicherstellen, dass das Paket installiert ist:

sudo apt install python-chardet 

iconv habe ich noch nicht verstanden.

Du sagst dem Programm, welches Encoding die Datei hat und was das gewünschte Ziel-Encoding ist.

Du kannst chardet nutzen, um das wahrscheinliche Encoding zu bestimmen, das sieht in etwa so aus:

$ chardet /tmp/win_encoding_test.txt
/tmp/win_encoding_test.txt: ISO-8859-9 with confidence 0.3171137574254168 

Und dann sagst du iconv, dass es die Datei nach UTF-8 konvertieren soll (die wahrscheinlichsten Encodings für deine Datei ISO 8859-1 (latin1), ISO 8859-15 (latin9 - mit € Zeichen) und CP1252 lassen sich nur schwer zuverlässig automatisiert voneinander unterscheiden, da muss man ggf. experimentieren und dann bei den Sonderzeichen schauen, ob alles passt):

$ iconv --from-code=cp1252 --to-code=utf-8 --output=/tmp/fixed.txt /media/nutzer/stick-882D/20200119.txt 

Die Zieldatei /tmp/fixed.txt sollte dann in einem Texteditor deiner Wahl "normal" aussehen.

mux9

(Themenstarter)

Anmeldungsdatum:
1. November 2009

Beiträge: 296

Danke!

... Ich denke nicht, dass das Paket python-chardet installiert ist, sonst würde er die Meldung nicht bringen.

stömmt! war nicht installiert, obwohl ichs mit synaptic "installierte". Jetzt gehts.

Hat bisher aber nichts gebracht. Hier bekommt man eine Liste

iconv -l  20200119.txt

und hier die Codierung angezeigt:

chardet 20200119.txt
20200119.txt: Windows-1252 with confidence 0.634869684499

das brachte bisher nur

iconv --from-code=cp1252 --to-code=utf-8 --output=20200119aa.txt 20200119.txt 
Pfützen auf der Straße

iconv --from-code=WINDOWS-1251 --to-code=utf-8 --output=20200119bb.txt 20200119.txt
PfГјtzen auf der StraГџe

iconv --from-code=WINDOWS-1252 --to-code=utf-8 --output=20200119cc.txt 20200119.txt
Pfützen auf der Straße

iconv --from-code=WINDOWS-874 --to-code=utf-8 --output=20200119-WINDOWS-874.txt 20200119.txt
iconv: ungültige Eingabe-Sequenz an der Stelle 138

iconv --from-code=WINDOWS-936 --to-code=utf-8 --output=20200119-WINDOWS-936.txt 20200119.txt
Pf眉tzen auf der Stra脽e

iconv --from-code=WINDOWS-1250 --to-code=utf-8 --output=20200119-WINDOWS-1250.txt 20200119.txt
PfĂĽtzen auf der StraĂźe

iconv --from-code=WINDOWS-1251 --to-code=utf-8 --output=20200119-WINDOWS-1251.txt 20200119.txt
PfГјtzen auf der StraГџe

iconv --from-code=WINDOWS-1252 --to-code=utf-8 --output=20200119-WINDOWS-1252.txt 20200119.txt
Pfützen auf der Straße

iconv --from-code=WINDOWS-1253 --to-code=utf-8 --output=20200119-WINDOWS-1253.txt 20200119.txt
iconv: ungültige Eingabe-Sequenz an der Stelle 138
PfΓΌtzen auf der StraΓ

iconv --from-code=WINDOWS-1258 --to-code=utf-8 --output=20200119-WINDOWS-1258.txt 20200119.txt
PfĂ¼tzen auf der StraĂŸe

iconv --from-code=WINDOWS-1256 --to-code=utf-8 --output=20200119-WINDOWS-1256.txt 20200119.txt
Pfأ¼tzen auf der Straأںe

iconv --from-code=WINDOWS-1255 --to-code=utf-8 --output=20200119-WINDOWS-1255.txt 20200119.txt
iconv: ungültige Eingabe-Sequenz an der Stelle 138
Pfֳ¼tzen auf der Straֳ

die txt jew. in mousepad geladen.

Gruußßßße

Udalrich

Anmeldungsdatum:
15. Mai 2019

Beiträge: 533

Das dürfte keine normale Windows-Textdatei sein, denn sonst würde die Wandlung aus ISO-Latein nach UTF funktionieren.

Ist es eine DOS-Textdatei? Diese könnte man per Codierung „IBM850“ öffnen in „iconv“ oder auch in Pluma. Genaugenommen IBM852, aber das gibts im Pluma nicht. ☺

Wenn das auch nicht geht, würde ich die Datei ausnahmsweise im Texteditor manuell per Suchen und Ersetzen ins richtige Format bringen.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11261

Wohnort: München

Wurde die Datei eventuell mal aus versehen gespeichert, nachdem sie mit dem falschen Encoding geöffnet wurde? Kannst du mal so eine Datei anhängen, damit man sich die einzelnen Bytes ansehen kann?

mux9

(Themenstarter)

Anmeldungsdatum:
1. November 2009

Beiträge: 296

@Udalrich

IBM850
Pfützen auf der Straße

IBM819
Pfützen auf der StraÃe

ja, ich habe die jetzt per Suchen/Ersetzen korrigiert.

@seahawk1986

ich sah grad ein paar Absätze in der Datei, die korrekte Umlaute haben, sprich: eine Art Mischkodierung, die wohl der Grund fürs eigentümliche Verhalten war.

ich schick eine bearbeitete, in pluma gekürzte Version mit (20200119-ausschnitt_aus-pluma-als-iso8859-15-zende-win). Die Originale will ich nicht schicken.

Danke & Grüße

20200119-ausschnitt-aus-pluma-als-iso8859-15-zende-win.txt (304 Bytes)
Download 20200119-ausschnitt-aus-pluma-als-iso8859-15-zende-win.txt

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17621

Wohnort: Berlin

Ein Teil davon, das mit den Straßen und Plätzen ist schon UTF-8, wie es aussieht. Für das "f�r L�sungen ?... g�be es" kommen zig Encodings in Betracht, 8859*, ISO*, LATIN*, WINDOWS*, CP* und weitere.

Große ÜmlÄutÖ wären noch interessant und das scharfe S.

Ich tippe aber auch darauf, dass die schonmal geöffnet und ohne Rücksicht aufs falsche Inputformat mit neuem Outputformat gespeichert wurde - da sind Konvertierprogramme natürlich verloren.

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11261

Wohnort: München

Zumindest für die Test-Datei funktioniert ein Ansatz mit ftfy, wenn man Wortweise vorgeht - da das Modul nicht in den Ubuntu-Paketquellen ist, könnte man über ein virtualenv (Abschnitt „Direkte-Nutzung-ab-Python-3-3“) gehen:

sudo apt install python3-venv
python3 -m venv ~/.ftfy-venv
. ~/.ftfy-venv/bin/activate
pip install -U pip ftfy 

Das Skript fix_encoding.py könnte dann so aussehen (ausführbar machen nicht vergessen):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/env python3
import fileinput
import ftfy

def parse_words_and_repair(line):
    start = 0
    output = []
    for n, c in enumerate(line):
        if c == ' ':
            stop = n + 1
            word = line[start:stop]
            w = ftfy.fix_text(word)
            output.append(w)
            start = stop
    return output


for line in fileinput.input(openhook=fileinput.hook_encoded("cp1252")):
    print(*parse_words_and_repair(line), sep='')
$ ./fix_encoding.py 9128810-20200119-ausschnitt-aus-pluma-als-iso8859-15-zende-win.txt



st würden die Pfützen auf der Straße bei euch ... und Parkplätzen ... wohl noch allerlei ... welches sich laut Zeit für Lösungen ?... gäbe es hier.... natürlich nicht
 "moderne" ... aber nur bei höheren Temperaturen.... prüfen bzw. ... können? ... zusammenhängendes Bild
 

Die Ausgabe des Skripts kann man in eine Datei umleiten.

Cranvil

Anmeldungsdatum:
9. März 2019

Beiträge: 990

Welches Programm erzeugt diese txt-Datei? Je nach "Glück" könnte es anstelle der CP850 noch die CP437 sein oder UTF-16.

Btw: Die Fragezeichen sehen so aus, als wäre deine Datei mindestens einmal erfolglos durch einen wie auch immer geratenen Konverter gerannt. Ich hatte vor ein paar Jahren mal versucht, eine PHP-basierte Webapplikation zu überarbeiten und dabei gelernt, dass illegale Zeichen damit ersetzt werden (siehe Einleitung von Specials_(Unicode_block).

Antworten |