Hallo,
habe mir Microsoft Visual-Studio Prof. installiert unter Windows 11 Prof.
Habe Python 3.13.3 installiert und in VS kann ich auch ein neues Projekt in Python erstellen
Bin absoluter Anfänger im Programmieren.
Habe print("Hallo Welt") eingegeben und es läuft.
Habe dann print("Hallo Übermorgen") eingegeben und gestartet und es kommt zur Fehlermeldung wegen UTF8.
Gebe ich das selbe unter CMD ein, so wird die Umlaute richtig ausgegeben.
Wie kann ich das ändern, dass die Ausgabe auch in VS funktioniert?
Danke im voraus
Probleme mit Umlaute in Python
Welche Fehlermeldung kommt denn da?
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Wie schön @Kebap, geschrieben hat, die konkrete Fehlermeldung wäre hilfreich.
Wenn ich raten müsste, würde ich vermuten, dass das Encoding nicht stimmt. Hat dann wenig mit Python zu tun, sondern eher welches Encoding deine IDE hat und welche die CMD verwendet.
Wenn ich raten müsste, würde ich vermuten, dass das Encoding nicht stimmt. Hat dann wenig mit Python zu tun, sondern eher welches Encoding deine IDE hat und welche die CMD verwendet.
An der Stelle in der Eingabe steht (anders als in deinem Beispiel) ein kleines ü oder? Das ist nicht Unicode/UTF-8, sondern vmtl. Windows 1252 oder UTF-16-LE. Wenn das in einer Datei steht, musst du die Datei korrekt kodieren, bzw. ggf. deine Software so einstellen, dass der richtige Zeichensatz verwendet wird.
- __blackjack__
- User
- Beiträge: 13996
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Oder einen Coding-Kommentar an den Anfang der Datei schreiben, der die tatsächliche Kodierung der Datei angibt. Aber es spricht IMHO wenig bis gar nichts dafür “bei uns” eine andere Kodierung als UTF-8 zu verwenden.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Schau mal hier
https://learn.microsoft.com/de-de/cpp/b ... w=msvc-170
und hier
https://learn.microsoft.com/de-de/power ... rshell-7.5
https://learn.microsoft.com/de-de/cpp/b ... w=msvc-170
und hier
https://learn.microsoft.com/de-de/power ... rshell-7.5
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
- __blackjack__
- User
- Beiträge: 13996
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Peter17: In welcher Kodierung? In der bei uns üblichen Windows-Kodierung CP1252 ist das ein kleines ü:
Code: Alles auswählen
In [13]: b'\xfc'.decode("cp1252")
Out[13]: 'ü'
In [14]: b"\xfc".decode("cp1252") == "Ü"
Out[14]: False
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
hallo blackjack,
habe Visual Studio gestartet, Neues Projekt in der Python-Umgebung angelegt.
In der IDE dann einfach Print("Hallo Übermorgen") eingegeben und mit "Starten" ausgeführt.
In der sich öffnend Shell wird der Fehler angezeigt.
habe Visual Studio gestartet, Neues Projekt in der Python-Umgebung angelegt.
In der IDE dann einfach Print("Hallo Übermorgen") eingegeben und mit "Starten" ausgeführt.
In der sich öffnend Shell wird der Fehler angezeigt.
- __blackjack__
- User
- Beiträge: 13996
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Peter17: Entweder war das Ü klein geschrieben, oder die Zahl in der Fehlermeldung war anders. Beziehungsweise war die Fehlermeldung bei ``Print`` mit einem grossen P ganz sicher anders.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
- __blackjack__
- User
- Beiträge: 13996
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
Ah, oder es ist tatsächlich FC für ein grosses Ü wenn eine EBCDIC-Kodierung beim Quelltext verwendet wird: https://de.wikipedia.org/wiki/Extended_ ... EBCDIC_037
So unwahrscheinlich das auch sein mag. Vielleicht wird ja sonst für (historische) Mainframes oder z/OS programmiert.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
@blackjack: Ich finde mittels iconv insgesamt 137 Encodings (einschl. Aliase), die das Ü so kodieren und – soweit ich das sagen kann – alle entweder sehr alt oder auf normalen PCs unüblich sind bzw. meistens beides. Wahrscheinlicher erscheint mir dann doch, dass da eigentlich ein ü steht und Visual Studio auf UTF16-LE gestellt ist, was im Kontext von Windows-Programmierung ja üblich ist und daher noch irgendwie halbwegs plausibel erscheint. Das ist aber nur wild spekuliert. Persönlich würde ich allerdings auch sowieso kein Visual Studio für Python nehmen.
@Sirius3: Das ist bei dem unter Windows (m.W.n.) üblichen UTF16-LE nicht zwangsläufig der Fall, da hier das fc zuerst kommt (fc00)
EDIT: siehe auch:
EDIT: siehe auch:
Code: Alles auswählen
xxd test.txt
00000000: 4800 6100 6c00 6c00 6f00 2000 fc00 6200 H.a.l.l.o. ...b.
00000010: 6500 7200 6d00 6f00 7200 6700 6500 6e00 e.r.m.o.r.g.e.n.
00000020: 0a00 ..
[code]
In [1]: open('test.txt').read()
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
Cell In[1], line 1
----> 1 open('test.txt').read()
File <frozen codecs>:325, in decode(self, input, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfc in position 12: invalid start byte
In [2]: open('test.txt', encoding='utf-16-le').read()
Out[2]: 'Hallo übermorgen\n'
Zuletzt geändert von nezzcarth am Dienstag 3. Juni 2025, 21:13, insgesamt 1-mal geändert.
Es ist völlig egal, ob in der Datei irgendwo ein ü vorkommt, weil der erste Buchstabe von
ein p ist, und weiter liest python gar nicht.
Code: Alles auswählen
print("Hallo Übermorgen")
Das trifft meinem Eindruck nach nicht zu, s. mein noch mal korrigierten Edit. Python meckert an Position 12 (allerdings nicht bei 6 wie im Ausgangspost, also habe ich vmtl. doch Unrecht
), nicht an Position 1.
EDIT:
Ohne ü kann Python das "lesen":

EDIT:
Ohne ü kann Python das "lesen":
Code: Alles auswählen
In [1]: open('test.txt', encoding='utf8').read()
Out[1]: 'H\x00a\x00l\x00l\x00o\x00 \x00u\x00b\x00e\x00r\x00m\x00o\x00r\x00g\x00e\x00n\x00\n\x00'
Hallo an alle.
Habe Dank Euch den Fehler gefunden.
In Visual Studio habe ich bei GIT/Einstellungen / Umgebung bei Dokumente im Eintrag "Speichern von Dateien mit einer bestimmten Codierung" ein Häkchen gesetzt und "Unicode (UTF-8 ohne Signatur) - Codepage 65001" ausgewählt. Und siehe da.... nun wird das Ü auch korrekt ausgegeben.
Besten Dank an alle für Eure Hilfe
Habe Dank Euch den Fehler gefunden.
In Visual Studio habe ich bei GIT/Einstellungen / Umgebung bei Dokumente im Eintrag "Speichern von Dateien mit einer bestimmten Codierung" ein Häkchen gesetzt und "Unicode (UTF-8 ohne Signatur) - Codepage 65001" ausgewählt. Und siehe da.... nun wird das Ü auch korrekt ausgegeben.
Besten Dank an alle für Eure Hilfe