ä, ü, ß, ö richtig anzeigen?

Objektorientierte Skriptsprache: (python.org)
sashpta
Beiträge: 104
Registriert: Fr Dez 12, 2014 2:55 pm

ä, ü, ß, ö richtig anzeigen?

Beitrag von sashpta » Mo Jan 26, 2015 6:07 pm

Ich hab folgendes Problem, wenn ich z.B. dies Code hier habe:

Code: Alles auswählen

# -*- coding: utf-8 -*-

from sys import exit



def start():
	print """Du bist in der Stadt \n
	Und weißt nicht was du tun sollst. \n
	Du überlest und überlegst. \n
	Dann fällt dir ein, dass du ein Eis essen gehen könntest. \n
	Möchtest du ein Eis essen gehen?"""

	choice = raw_input("> ")

	if choice == "Ja":
		auswahl()
	elif choice == "Nein":
		ersteEntscheidung()
	else:
		print "Dies gab es nicht zur Auswahl!"


start()
werden mir in PowerShell ü, ß, etc so komisch angezeigt. Ich dachte, dass man dies mit

Code: Alles auswählen

# -*- coding: utf-8 -*-
behebt, aber anscheind klappt das nicht. Gibt es da eine Möglichkeit, dass die Buchstaben richtig angezeigt werden?
http://gyazo.com/1cffee24e0e32f1b8f5401a8761f06c4 <- so wird es mir in PowerShell angezeigt

LG

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: ä, ü, ß, ö richtig anzeigen?

Beitrag von Xin » Di Jan 27, 2015 1:43 am

Probier mal das:

Code: Alles auswählen

 print """Du bist in der Stadt \n
   Und weißt nicht was du tun sollst. \n
   Du überlest und überlegst. \n
   Dann fällt dir ein, dass du ein Eis essen gehen könntest. \n
   Möchtest du ein Eis essen gehen?""".encode( 'iso-8859-1' );
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

sashpta
Beiträge: 104
Registriert: Fr Dez 12, 2014 2:55 pm

Re: ä, ü, ß, ö richtig anzeigen?

Beitrag von sashpta » Di Jan 27, 2015 5:31 pm

Nein hat leider auch nicht geklatt.

Code: Alles auswählen

print "äöüß".encode( 'iso-8859-1' );
kommt das: http://gyazo.com/f5381a14a5abb0a9c6d37ee5b864fc3e

wenn ich

Code: Alles auswählen

unicode "äüöß"
mache kommt http://gyazo.com/2dd80b441acad0620c7405decb705f11

wenn ich

Code: Alles auswählen

u = "äöüß"
print u
mache geht das zwar in der Python Shell aber wenn ichs im Editor öffne kommt das http://gyazo.com/b7aa8884e88a326e1659c512feaf1863

wenn ich

Code: Alles auswählen

# -*- coding: utf-8 -*-
# -*- coding: latin-1 -*-
beides drüber hab bringt es auch nicht das geringste
wenn ich

Code: Alles auswählen

# -*- coding: utf-8 -*-
# -*- coding: latin-1 -*-

print "Ich %r ob ich %r sagen soll" % ("überlege", "hallo")
habe kommt das http://gyazo.com/9ed979fc5b20791e47b09d6bd91b4c75 ist ja schonmal was anderes als vorher ^^

wenn ich das selbe mit %s mache wird das 'ü' in überlege wieder so komisch angezeigt.

Hab auch mal in der Python Documentation nachgesehen aber nur das gefunden.

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: ä, ü, ß, ö richtig anzeigen?

Beitrag von nufan » Di Jan 27, 2015 8:24 pm

Wenn du Python2 verwendest versuch mal das:

Code: Alles auswählen

print u"\u00e4"
Bei Python3 das:

Code: Alles auswählen

print("\u00e4")
Du solltest ein 'ä' angezeigt bekommen.

sashpta
Beiträge: 104
Registriert: Fr Dez 12, 2014 2:55 pm

Re: ä, ü, ß, ö richtig anzeigen?

Beitrag von sashpta » Mi Jan 28, 2015 8:52 pm

Hat super geklappt, danke.
Ich benutze Python 2.

Und kannst du mir auch sagen wie man diesen 'Namen' für das ä nennt oder wo ich eine Liste für die anderen Buchstaben finde?

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: ä, ü, ß, ö richtig anzeigen?

Beitrag von nufan » Mi Jan 28, 2015 9:34 pm

Was du hier mit dem \ einleitest nennt sich eine Escape-Sequenz. Das bedeutet jetzt kommt etwas Besonderes im String das angezeigt werden soll, z.B. ein Newline wie du es schon mit \n dargestellt hast. \u bedeutet, dass als nächstes ein 2 Byte großer Hex-Unicode kommt. Eine Unicode-Tabelle findest du leicht im Internet, z.B. hier:
http://en.wikipedia.org/wiki/List_of_Unicode_characters
Wenn du "Latin-1 Supplement" ausklappst siehst du bei U+00E4:

Code: Alles auswählen

U+00E4 	ä 	&#228; 	&auml; 	Latin Small Letter A with diaeresis
So kannst du dier alles andere leicht zusammensuchen.
Um das ganze etwas lesbarer zu machen kannst du die Werte auch Variablen zuweisen:

Code: Alles auswählen

>>> ae = u"\u00e4"
>>> ue = u"\u00fc"
>>> print ae + ue
äü
Funktioniert eigentlich das:

Code: Alles auswählen

>>> print u"äü"
äü
? Welchen Editor verwendest du überhaupt?

sashpta
Beiträge: 104
Registriert: Fr Dez 12, 2014 2:55 pm

Re: ä, ü, ß, ö richtig anzeigen?

Beitrag von sashpta » Mi Jan 28, 2015 10:31 pm

Danke

Sublime Text 2

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: ä, ü, ß, ö richtig anzeigen?

Beitrag von nufan » Mi Jan 28, 2015 10:48 pm

Kannst du vielleicht mal deine ursprüngliche (nicht funktionierende) Code-Datei hochladen? Also wirklich als Anhang, nicht den Inhalt kopieren. Mich würde interessieren ob die Datei das richtige Encoding hat.

sashpta
Beiträge: 104
Registriert: Fr Dez 12, 2014 2:55 pm

Re: ä, ü, ß, ö richtig anzeigen?

Beitrag von sashpta » Do Jan 29, 2015 7:49 am

Ja heut nachmittag in der Schule wenn ich dran denke^^
Sonnst erst am 1. Februar.

sashpta
Beiträge: 104
Registriert: Fr Dez 12, 2014 2:55 pm

Re: ä, ü, ß, ö richtig anzeigen?

Beitrag von sashpta » Do Jan 29, 2015 1:58 pm

Habs jetzt grad mal in der Schule probiert

Code: Alles auswählen

# -*- coding: utf-8 -*-

from sys import exit



def start():
   print """Du bist in der Stadt \n
   Und weißt nicht was du tun sollst. \n
   Du überlest und überlegst. \n
   Dann fällt dir ein, dass du ein Eis essen gehen könntest. \n
   Möchtest du ein Eis essen gehen?"""

   choice = raw_input("> ")

   if choice == "Ja":
      auswahl()
   elif choice == "Nein":
      ersteEntscheidung()
   else:
      print "Dies gab es nicht zur Auswahl!"


start()

Aber da hat es irgendwie mit dem Code alles richtig angezeigt.

Antworten