|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
TimesChange
Anmeldungsdatum: 20.11.2013 Beiträge: 85
|
Verfasst am: 19.04.2014, 17:07 Titel: Wieder mal Umlaute - nach Umstieg auf Win7 |
|
|
Nachdem ich erfolgreich ein paar Programme von Quickbasic auf Freebasic umgesetzt habe, und auch der überfällige Umstieg von Win XP auf Win 7 erfolgt ist, habe ich ein neues Problem mit den Umlauten.
Ich vermute, es liegt an Windows 7, aber ich habe keine Ahnung
Schon bisher musste ich Umlaute, die auf den Bildschirm ausgegeben werden sollten, "anders" im Quelltext eingeben. Um z.B. den Text "Blättern" auszugeben, muss ich "Bl„ttern" schreiben.
Soweit so gut, nur ist mir seit Umstieg auf Win7 mein "ü" verschwunden.
Konkret: Ich habe ein Programm (noch unter XP geschrieben) das den Text "für" ausgeben soll. In FBIDE sehe ich im Quelltext jetzt aber nur noch
Im Hex-Editor sehe ich aber, dass zwischen dem "f" und dem "r" immer noch ein &H81 steckt.
(ä,ö, und die anderen Umlaute werden - soweit ich das bisher sehe - immer noch als "andere" Zeichen angezeigt.)
Kann mir jemand einen Tipp geben, wie ich damit am besten umgehe, und auch im Editor/FBIDE wieder mein "ü" bekomme?
Grüße
Rainer
P.S. Mir ist klar, dass ich für "für" auch !"F\129r" schreiben kann. Oder chr(...)
Es geht mir also darum, wie ich FBIDE dazu bekomme, die (noch vorhandenen) Codes im Quelltext bestehender Programme auch anzuzeigen |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 19.04.2014, 17:41 Titel: |
|
|
Leider kenne ich FBIDE nicht so richtig; vielleicht gibt es irgendwo eine Möglichkeit, die Zeichencodierung einzustellen (was ich eher bezweifle).
Eine völlig andere Alternative: Wenn du den ASCII-Code der Sonderzeichen kennst, kannst du es auch auf diesem Weg eingeben, z. B.
Beachte dabei das Ausrufezeichen vor dem String.
edit: Ich sehe gerade, dass ich eine undokumentierte Escape-Sequenz verwendet habe ...
edit2: Da es sich offenbar um einen Bug handelt, habe ich meinen Code mal zu einer offiziell unterstützten Escape-Sequenz umgeändert. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Zuletzt bearbeitet von nemored am 19.04.2014, 21:46, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
Muttonhead
Anmeldungsdatum: 26.08.2008 Beiträge: 562 Wohnort: Jüterbog
|
Verfasst am: 19.04.2014, 17:58 Titel: |
|
|
Vermutlich bist du am schnellsten wenn du dir ein kleines Replacement-Tool schreibst und dieses dann über den "XP"-Quellcode jagst.
Einfach mal in die IDE äöü eintippen abspeichern und im Hexeditor nachsehen welches Zeichen verlangt wird.
Also ich würd es so machen
Mutton |
|
Nach oben |
|
|
TimesChange
Anmeldungsdatum: 20.11.2013 Beiträge: 85
|
Verfasst am: 19.04.2014, 19:09 Titel: |
|
|
Unter den Einstellungen / settings bei FBIDE finde ich jedenfalls keine derartige Option...
Bei neuen Programmen sind die Escape-Sequenzen sicher sinnvoll, lästig ist eben das Verhalten / die Anzeige bei vorhandenen Dateien.
Muttonhead hat Folgendes geschrieben: | ...ein kleines Replacement-Tool schreibst und dieses dann über den "XP"-Quellcode jagst... |
Nicht dass wir uns falsch verstehen: Der Quellcode enthält ja die gewünschten Sonderzeichen, das Programm gibt wie gewünscht "für" auf dem Bildschirm aus, in FBIDE sehe ich aber nur "fr" ...
Es muss eigentlich eine "Besonderheit" unter Win7 sein. Ich bin mir ziemlich sicher, dass ich unter XP sowohl mit FBIDE als auch mit einem beliebigen Viewer / Editor und Standard-Ansi-Anzeige irgendein Zeichen anstelle des "ü" angezeigt bekam. Und jetzt sieht es eben so aus, als gäbe es nur "fr". Unter ANSI bekomme ich den Wert für &h81 / 129 "nichts" angezeigt...
Grüße
Rainer |
|
Nach oben |
|
|
Sebastian Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 19.04.2014, 19:22 Titel: ASCII / IBM 850 dank Geany |
|
|
Hallo,
zum Beispiel mit der Editor-IDE-Kombination Geany (Open Source) kann man die Zeichenkodierung der geöffneten Datei beliebig umwandeln.
Wenn du z. B. einen Quelltext mit UTF-8-Umlauten hast und den compilieren lässt, siehst du Folgendes:
Um Abhilfe zu schaffen, kannst du die Zeichenkodierung mit Geany auf ASCII / IBM 850 ändern:
Wenn du jetzt das Programm, das auf den richtigen Zeichensatz umgestellt wurde, compilierst, sieht die Ausgabe so aus:
Die Escape-Sequenzen, die nemored beschrieben hat, sind ein guter Ansatz, um das unabhängig von der Dateikodierung zu lösen. Ein bisschen einfacher kann man sich's machen, wenn man direkt mit der passenden Kodierung arbeiten kann. Aber das beherrscht FBIde leider nicht.
Es gibt aber auch Kommandozeilentools, mit denen man eine ANSI-Datei in eine Extended-ASCII-Datei umwandeln lassen kann. Damit könnte man evtl. Abhilfe für FBIde bauen. FBIde würde beim Compilieren nicht mehr direkt fbc.exe aufrufen, sondern eine fbcstub.bat, die zuerst die Konvertierung des Quelltexts anstößt und anschließend den fbc.exe aufruft.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
|
TimesChange
Anmeldungsdatum: 20.11.2013 Beiträge: 85
|
Verfasst am: 21.04.2014, 12:36 Titel: |
|
|
GEANY sieht ja ganz interessant aus. Ich denke zwar, dass ich hier eher ein "Problem" im Betriebssystem habe, das ich lieber "an der Quelle" abstellen würde. Aber die Möglichkeit zur Umcodierung des Zeichensatzes kann ich sicher irgendwann mal gebrauchen.
Viele Grüße
Rainer |
|
Nach oben |
|
|
HorstD
Anmeldungsdatum: 01.11.2007 Beiträge: 107
|
Verfasst am: 21.04.2014, 14:51 Titel: |
|
|
Zitat: | Ich denke zwar, dass ich hier eher ein "Problem" im Betriebssystem habe, |
Das Betriebssystem erwartet für Konsolenfenster (DOS-Fenster) den OEM-Zeichensatz. (Codepage 850)
Wenn du einen Ansi-Editor (CP 1252) verwendest, stimmen die Umlaute selbstveständlich nicht.
Also:
Entweder
einen DOS-Editor oder einem auf OEM einstellbaren Windows-Editor verwenden.
(Zumindest für die Ausgabetexte).
oder
die mittels Ansi-Editor eingegebenen Umlaute konvertieren bzw. als
CHR()-Code eingeben.
oder
einen Kompiler verwenden, der damit keine Probleme hat. |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 21.04.2014, 16:51 Titel: |
|
|
Es geht ja nicht um die Anzeige im Konsolenfenster, sondern darum, dass ein in FBIDE früher angezeigtes Sonderzeichen jetzt in FBIDE nicht mehr angezeigt wird. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
TimesChange
Anmeldungsdatum: 20.11.2013 Beiträge: 85
|
Verfasst am: 22.04.2014, 00:36 Titel: |
|
|
So, nun habe ich das nochmal auf einem anderen Rechner mit Win 7 und auf einem mit Win 8.1 ausprobiert. Bei keinem bekomme ich das "ü" (oder ANSI-Zeichen &h81) in irgendeiner Form angezeigt.
Nochmal eine alte XP-Partition hochgefahren, und dort sehe ich wie gewohnt einen "Platzhalter".
Hier nochmal ein Mini-Screenshot einer Quelltext-Zeile. Oben unter XP, unten die identische Datei unter Win7.
Man sieht, dass das "ö" in beiden Fällen gleich angezeigt wird, nur beim "ü" haperts.
Naja, ist auch nicht soo wichtig. Die Programme laufen ja bzw. werden korrekt kompiliert, künftig verwende ich Escape-Sequenzen, es ist nur lästig weil man denkt es fehlt etwas...
Mich wundert es halt, dass niemand sonst dieses Phänomen hatte...
Viele Grüße
Rainer |
|
Nach oben |
|
|
nemored
Anmeldungsdatum: 22.02.2007 Beiträge: 4597 Wohnort: ~/
|
Verfasst am: 22.04.2014, 11:25 Titel: |
|
|
Ich müsste mal genauer nachsehen, welche ANSI-Code-Bereiche da betroffen sind, allerdings deutet das Rechteck beim ü darauf hin, dass hier kein "Ersatzzeichen" bereitsteht wie beim ö, sondern eben nur ein Platzhalter angezeigt wird. Durchaus möglich, dass diese Platzhalter bei Win7/8 "unter den Tisch fallen".
Ich habe den Vorteil, dass ich bei nicht druckbaren Zeichen einen Platzhalter mit dem Hexadezimalcode des Zeichens angezeigt bekomme. Scheint aber auch eine betriebssystem-interne Sache zu sein. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|