Sonderzeichen auf LCD 2x16

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,
    ich möchte auf einem Display HD44780 2x16 Sonderzeichen "ö" darstellen.
    Das ö alleine bekomme ich hin, aber nicht im Wort.
    Hier meine Ansatz:

    lcd ("Familie",chr(239))
    lcd ("Familie","Sch"chr(239)"n") ??????
    auf der Zeile 1 wird Familie dargestellt,
    auf der Zeile 2 soll der Nachname mit ö dargestellt werden. In der jetzigen Anordnung kommt nur der Buchstabe ö. Wie bekommt man die restlichen Buchstaben auf das Display. Habe schon viele Möglichkeiten vergebens versucht. Entweder wird die ganze Zeile verstümmelt oder es kommt eine Fehlermeldung.

    • Offizieller Beitrag
    Code
    lcd ("Familie Schr%sder" % chr(239))


    Funzt das? Ohne den komplett Code schwer zu sagen

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Einmal editiert, zuletzt von dbv (2. Februar 2015 um 22:38)

  • Hallo,

    das mit coding: utft-8 bezieht sich auch "nur" auf den Quelltext, nicht auf die Ausgabe bzw. mit in deinem Programm mit Zeichenketten umgegangen wird. Innerhalb deines Programms verwendest du nur ASCII-Zeichenketten, stell' das ganz mal auf Unicode um.

    Das ist übrigens eines der Dinge, die bei Python 2 anfangs ein wenig verwirrend sein können... Zwei Links mit Erklärungen dazu:

    * deutscher Vortrag zu Python und Unicode
    * englischer Vortrag

    Gruß, noisefloor

  • Gut, den Unterschied habe ich verstanden. Script...Ausgabe
    Leider verstehe ich nicht wie man dies auf Unicode umstellt. Kann mir jemand mit konkret helfen? Die Erläuterungen helfen mir, als nicht Fachmann, nicht wirklich weiter.

    Einmal editiert, zuletzt von stefan-dd (7. Februar 2015 um 23:37)

  • Hallo,


    Leider verstehe ich nicht wie man dies auf Unicode umstellt. Kann mir jemand mit konkret helfen? Die Erläuterungen helfen mir, als nicht Fachmann, nicht wirklich weiter.


    Andersrum: besonders die deutschen Folien sind von einem Fachmann für Nicht-Fachmänner :)

    Umstellen kannst du gar nicht. Du kannst dem Python 2.7 Interpreter mitteilen, welche Strings Unicode sein sollen. Das macht das u'...' Prefix.

    Und das `str` in der `lcd()` Funktion solltest du mal weglassen - oder durch `unicode` ersetzen.

    Grundsätzlich ist das Thema String vs. Unicode in Python 2.x am Anfang in der Tat verwirrend, auch wenn es im Prinzip am Ende ziemlich simpel ist. Aber von du weiterhin in Python 2.7 programmierst, dann es das essentiell wichtig, das verstanden zu haben, sonst läufst du immer wieder in Fehler. Zumal wie als Deutsch ja auch viele ä ö ü und ß in der Sprache haben, d.h. wir kommen - im Gegensatz zu Englisch - halt nicht mit dem ASCII Zeichensatz.

    Alternativ kannst (solltest?) du auf Python 3 wechseln. a) hast du da die Probleme nicht, weil die Zeichenkodierung da per Default anders ist und b) Python 3 so wie so die Zukunft ist.

    Gruß, noisefloor

  • Hallo,


    Ja aber um die eine Zeile anzuzeigen sollte es doch ausreichen


    Was ausreichend ist und was nicht hängt in erster Linie vom eigenen Anspruch ab ;)


    und das Problem lösen können.


    Das `+` macht ja nicht anders als die Kommaseparierung im Eingangsposten.

    stefan-dd:
    probier das mal in deinem Code:

    Code
    lcd(u'Familie Schr{}der'.format(unichr(246)))

    Gruß, noisefloor[/code]

    Einmal editiert, zuletzt von noisefloor (10. Februar 2015 um 01:51)

  • Ich möchte nicht irgendwie hier als Lehrer/Depp erscheinen aber wahren den nicht die fehlenden
    + das Problem ? um den Code laufen zu lassen?
    Sorry, aber ich seh im Eingangspost keine , und gehen die wirklich. Ich mach nur PHP und da sind . OK.

    Einmal editiert, zuletzt von Quetschekuche (10. Februar 2015 um 02:50)

  • Hallo,


    Ich möchte nicht irgendwie hier als Lehrer/Depp erscheinen aber wahren den nicht die fehlenden
    + das Problem ? um den Code laufen zu lassen?
    Sorry, aber ich seh im Eingangspost keine , und gehen die wirklich.


    Nein, ist es nicht :) Es ist ein Problem mit der Darstellung des Buchstaben ö. Kommas und + geht beides:

    Code
    >>> print 'foo' + 'bar' + 'spam'
    foobarspam
    >>> print 'foo','bar','spam'
    foo bar spam

    Und einen kleinen Unterschied gibt's doch: bei , wird ein Leerzeichen eingefügt, bei + nicht.

    Gruß, noisefloor[/code]

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!