Zeichensatz in Russisch für Python

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
fraumitlinux
Beiträge: 3
Registriert: 18.01.2021 15:29:05

Zeichensatz in Russisch für Python

Beitrag von fraumitlinux » 24.02.2021 19:49:09

Hallo, ich lerne gerade die Programmiersprache Python und will ein Programm schreiben mit dem man russische Häkelanleitungen übersetzen kann. Das Programm funktioniert in englisch. In Russisch noch nicht. Was sicher mit dem kyrrillisch zu tun hat. Ich habe bisher mit Gentoo gearbeitet wo ich die Locale in /etc/locale.gen hinterlegt habe und dann den Befehl ausführte. Unter Debian will er das nicht:

Code: Alles auswählen

michi@michi-debian:~/python$ locale-gen
bash: locale-gen: Kommando nicht gefunden.
Wie bekomme ich das hin mit dem kyrillischen Schriftsatz zu arbeiten?

Code: Alles auswählen

[michi@michi-debian:~/python$ locale -a
C
C.UTF-8
de_DE.utf8
POSIX

Code: Alles auswählen

michi@michi-debian:~/python$ python ru-uebersetzung.py 
Traceback (most recent call last):
  File "ru-uebersetzung.py", line 5, in <module>
    for line in datei:
  File "/usr/lib/python3.7/fileinput.py", line 252, in __next__
    line = self._readline()
  File "/usr/lib/python3.7/fileinput.py", line 366, in _readline
    return self._readline()
  File "/usr/lib/python3.7/codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte

Code: Alles auswählen

michi@michi-debian:~/python$ less ru-uebersetzung.py
#/usr/bin/python3
import fileinput
import re
datei=fileinput.FileInput("ru-txt.txt",inplace=True,backup=".bak")
for line in datei:
        line=re.sub(r"Инструкции","Anleitung",line)
        line=re.sub(r"белый","weiss",line)
        line=re.sub(r"чернить","schwarz",line) 
        line=re.sub(r"ряд","Runde",line)
ru-uebersetzung.py (END)

KP97
Beiträge: 3403
Registriert: 01.02.2013 15:07:36

Re: Zeichensatz in Russisch für Python

Beitrag von KP97 » 24.02.2021 19:58:55

Probier es mit

Code: Alles auswählen

dpkg-reconfigure locales

fraumitlinux
Beiträge: 3
Registriert: 18.01.2021 15:29:05

Re: Zeichensatz in Russisch für Python

Beitrag von fraumitlinux » 25.02.2021 08:18:42

Will er auch nicht ... :-(

Code: Alles auswählen

root@michi-debian:/home/michi# apt-get install debconf
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
debconf ist schon die neueste Version (1.5.71).
0 aktualisiert, 0 neu installiert, 0 zu entfernen und 3 nicht aktualisiert.


root@michi-debian:/home/michi# dpkg-reconfigure locales
bash: dpkg-reconfigure: Kommando nicht gefunden.

thoerb
Beiträge: 1677
Registriert: 01.08.2012 15:34:53
Lizenz eigener Beiträge: MIT Lizenz

Re: Zeichensatz in Russisch für Python

Beitrag von thoerb » 25.02.2021 10:18:50

Du hast dich wahrscheinlich nicht mit
sondern nur mit
als root angemeldet.

wanne
Moderator
Beiträge: 7447
Registriert: 24.05.2010 12:39:42

Re: Zeichensatz in Russisch für Python

Beitrag von wanne » 25.02.2021 13:45:13

Ich kann nicht so ganz genau sagen, wie Python da was handelt.
Aber dasda:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
Ist eigentlich relativ eindeutig: In ru-txt.txt scheint schlicht kein UTF-8 Text drin zu sein. Entsprechend kannst du da auch keinen Text lesen. 0xFF als erstes Byte klingt ganz stark nach UTF-16 mit BOM oder irgend was binäres.
rot: Moderator wanne spricht, default: User wanne spricht.

Antworten