Probleme mit Sonderzeichen

Fragen zu Tkinter.
Benutzeravatar
wuf
User
Beiträge: 1407
Registriert: Sonntag 8. Juni 2003, 09:50

Probleme mit Sonderzeichen

Beitragvon wuf » Sonntag 5. Oktober 2003, 16:50

Hallo Python Freunde

Habe meine Python Software von
Version 2.2 auf Version 2.3
aktualisiert. Ich möchte in
der Titelleiste folgenden
Titeltext einblenden:

"Beschleunigung [m/s²]"

Python oder TK scheint den
Exponenten ² als ein Zeichen
aus dem alten Europa zu be-
handeln. Gibt es eine Möglich-
keit dieses Sonderzeichen
trotzdem anzuzeigen?

Besten Dank für Eure Hilfe
Gruss von Fritz

N.B. Mit Python 2.2 und Tk8.3
Funktioniert es richtig.

Code: Alles auswählen

# -*- coding: UTF-8 -*-

#~~ Python  = Version 2.3
#   Tkinter = Bibliothek Tk8.4
#   Autor   = Fritz Wüst

from Tkinter         import *

if __name__ == '__main__':

   hf = Tk()
   hf.title('Beschleunigung [m/s²]')
   hf['width' ] = 250
   hf['height'] = 200

   hf.mainloop()
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Sonntag 5. Oktober 2003, 17:02

Hi Fritz,

das hängt auch von Deinem OS und Deinem Editor ab, ob der wirklich utf-8 schreibt. Bei mir unter Linux funktionierts mit dem ².


Gruß

Dookie
Gast

Beitragvon Gast » Sonntag 5. Oktober 2003, 19:05

Hallo Dookie

Besten Dank für Deine sofortige Antwort.

Mein OS hier ist Windows 2000.
Ich habe meine Source mit dem Titeltext
auch vom IDLE und Pythonwin 2.3.2 aus
gestartet. Beim IDLE wird der Exponent
auch als Rechteck ausgegeben. Pythonwin
gibt den Exponenten als "?" aus.
Ich probierte es auch unter Linux SuSE 8.2
unter Python 2.2 zusammen mit Tk8.4. Das
Resultat bei Linux war auch ein "?" als
Exponenten. Ich editiere meine Programm-
sourcen mit dem "Crimson-Editor 3.51" mit
dem ich sehr gute Erfahrungen gemacht habe.
Vielleicht liegt das Problem bei Tk8.4.


Nochmals besten Dank.
Gruss Fritz
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Sonntag 5. Oktober 2003, 19:29

ich glaube das liegt ganz einfach am Zeichensatz. Ich editiere meine Programme mit vim und stelle (bzw lasse das automatisch stellen) das Fileencoding auf utf-8. So werden auch Sonderzeichen richtig in utf-8 codiert beim speichern.
Du must das beim Crimson-Editor im Document-Menu bei Encoding Type einstellen, dann sollte es mit Python2.3 klappen.

Gruß

Dookie
Benutzeravatar
wuf
User
Beiträge: 1407
Registriert: Sonntag 8. Juni 2003, 09:50

Beitragvon wuf » Samstag 11. Oktober 2003, 20:29

Hallo Python & Tkinter Freunde

Warum werden unter Python 2.3 und
Tkinter Tk8.4 Sonderzeichen wie
Exponenten und Mikro (Griechische)
-Symbole) nicht mehr dargestellt.
Das ist doch nicht möglich ?!
Physikalische Einheiten braucht es
doch auf jeder Grafischen Darstellung.

Unter Python 2.2 und Tkinter Tk8.3
funktioniert es bestens.

Unter Windows werden die Sonderzeichen
als Rechtecke und unter Linux SuSE 8.2
als Fragezeichen dargestellt.

Verwendete Editoren:
Windows: Crimson
Linux: Kate, KWrite, Vim

Für jeden Tip um diese Problem in den
Griff zu bekommen bin ich Euch sehr Dankbar.
Gruss Fritz

Der folgende Code schreibt etwas mit
Sonderzeichen auf eine Canvasfläche:



Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

#~~ Python  = Version 2.3
#   Tkinter = Bibliothek Tk8.4
#   Autor   = Fritz Wüst

from Tkinter         import *
from string          import *

if __name__ == '__main__':

   hf = Tk()

   canvas = Canvas(hf,bg='lightsteelblue',bd=1,relief="ridge",width=200,height=100)
   canvas.pack()

   text = canvas.create_text(10,10,text= "Beschleunigung [m/s²]",anchor="w")
   text = canvas.create_text(10,25,text= "Basisstrom [µA]",anchor="w")

   hf.mainloop()
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Samstag 11. Oktober 2003, 21:59

Hi wuf,

unter Debian SID mit Python2.3 und TK 8.4 funktionierts.
Bild
Hast Du vor dem speichern mit vim mittels :set fenc=utf-8 auch das fileencoding auf utf-8 gesetzt?


Gruß

Dookie
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Samstag 11. Oktober 2003, 22:09

Natürlich muss auch der Zeichensatz, den TK verwendet die entsprechenden Zeichen darstellen können, vielleicht liegts daran?

Dookie
Benutzeravatar
wuf
User
Beiträge: 1407
Registriert: Sonntag 8. Juni 2003, 09:50

Beitragvon wuf » Sonntag 12. Oktober 2003, 17:03

Hi Dookie

Dein Tip mit :set fenc=utf-8 wirkte
Wunder. Mit dem Vim Editor habe ich
bis jetzt noch nie etwas editiert.
Somit war Vim für mich Neuland obwohl
er scheinbar auf jeder Linuxinstallation
verfügbar ist. Vim erinnert mich an
frühere Zeiten als Sourcen für Assembler
noch mit textorientierten Editoren ge-
schrieben wurden. Bei meinem Crimson-
Editor für Windows (Release 3.51) ist
unter dem "Menü Document" -> "Encoding-
Type" -> "Unicode Encoding" vorhanden
aber ist nicht aktivierbar.

Die Anweisung # -*- coding: UTF-8 -*-
am Anfang eines Python-Skripts genügt
also noch nicht um den Python-Interpreter
automatisch auf UTF-8 Verarbeitung um-
zuschalten?

Gibt es für Windows auch Editoren die
auf UTF-8 umschaltbar sind?

Ok Dookie
Danke für Deinen hilfreichen Tip
Gruss wuf :D
Zuletzt geändert von wuf am Sonntag 12. Oktober 2003, 17:27, insgesamt 1-mal geändert.
Gast

Beitragvon Gast » Sonntag 12. Oktober 2003, 17:26

wuf hat geschrieben:Hi Dookie

Dein Tip mit :set fenc=utf-8 wirkte
Wunder. Mit dem Vim Editor habe ich
bis jetzt noch nie etwas editiert.
Somit war Vim für mich Neuland obwohl
er scheinbar auf jeder Linuxinstallation
verfügbar ist. Vim erinnert mich an
frühere Zeiten als Sourcen für Assembler
noch mit textorientierten Editoren ge-
schrieben wurden. Bei meinem Crimson-
Editor für Windows (Release 3.51) ist
unter dem "Menü Document" -> "Encoding-
Type" -> "Unicode Encoding" vorhanden
aber ist nicht aktivierbar.

Die Anweisung # -*- coding: UTF-8 -*-
am Anfang eines Python-Skripts genügt
also noch nicht um den Python-Interpreter
automatisch auf UTF-8 Verarbeitung um-
zuschalten?

Gibt es für Windows auch Editoren die
auf UTF-8 umschaltbar sind?

Ok Dookie
Danke für Deinen hilfreichen Tip
Gruss wuf :D
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Sonntag 12. Oktober 2003, 17:46

Vim gibts auch für win, und auch für mac, BeOS, Amiga ...
Daneben gibts (zumindest für Linux) noch vimtutor, inzwischen sogar auf Deutsch. Das zeigt recht schön die Bedienung von Vim. Man sollte sich wirklich die Stunde Zeit nehmen das einmal durchzuarbeiten.
Ich verwende Vim für alles, was unter Linux zu editieren ist. Bash-Scripts, Configfiles, Povrayfiles, Html-, PHP- und Pythoncode.

Gruß

Dookie
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Sonntag 12. Oktober 2003, 22:26

Noch eine Anmerkung,

Die Anweisung # -*- coding: UTF-8 -*-
am Anfang eines Python-Skripts genügt
also noch nicht um den Python-Interpreter
automatisch auf UTF-8 Verarbeitung um-
zuschalten?


Diese Anweisung soll dem Python-Interpreter sagen, daß die Pythondatei im UTF-8 Code vorliegt. Dazu muss sie natürlich auch in diesem Zeichensatzcoding gespeichert sein. Wenn Du einen "Normalen" Editor nimmst, so wird der in der Zeichensatzcodierung Speichern die in Deinem OS eingestellt ist, also unter Linux in Deutschland/Österreich mit iso-8859-15 und unter Windows mit 1252-ANSI oder sonstwas und da stimmen dann die Zeichen natürlich nicht mit dem UTF-8 Zeichen überein.


Gruß

Dookie

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder