Umlaute

Hier dürfen auch unregistrierte Besucher posten.
Antworten
Martin-11

Umlaute

Beitrag von Martin-11 »

Hallo Zusammen,

mein Name ist Martin und ich bin schon etwas älter ;)
Früher in QB4, später in VB6 programmiert.
Mein neuer Rechner hat (leider) Windows 10 – 64-bit und ich habe noch ein „altes“ DOS-Programm.
Gestern die DOS Box 0.74 installiert und erfreulich festgestellt, dass diese unter 64-Bit lief und ich mein DOS Programm starten konnte.
Mein Problem ist folgendes:
Ö-ö geht, Ä-ä und Ü-ü geht nicht.
Kann man irgendwo etwas einstellen?
Auszug aus config-Datei (ist fast original übernommen)
language=
machine=svga_s3
captures=capture
memsize=16
[autoexec]
mount w: w:\
w:
cd stefan\rfakt40
rfakt40
exit

Vielen Dank im Vorraus
Martin
Benutzeravatar
Roman78
BIOS-Flasher
Beiträge: 384
Registriert: Di 6. Jan 2015, 11:38

Re: Umlaute

Beitrag von Roman78 »

Was kommen den für Zeichen wenn du die Tasten drückst?

Hast du das Keyboard Layout angepasst, geladen: https://www.dosbox.com/wiki/KEYB
Schaut doch mal in meinem Blog vorbei.
Martin-2

Re: Umlaute

Beitrag von Martin-2 »

in der Config steht nur
keyboardlayout=auto

Sollte ich oder [Dos] folgendes einfügen?
KEYB sv 437


öÖ klappt, bei äÄüÜ kommt nicht.

Auf dem "alten" Rechner Win10-32bit klappt alles, Fehler ist nur bei dem "neuen" Rechner Win10-64bit.
Benutzeravatar
schubl
CONFIG.SYS-Autor
Beiträge: 271
Registriert: So 17. Mär 2019, 19:14

Re: Umlaute

Beitrag von schubl »

Warum willst Du auf Schwedisch stellen?
Du kannst entweder im Abschnitt

Code: Alles auswählen

[DOS]
keyboardlayout=gr
eintragen, oder im Abschnitt

Code: Alles auswählen

[autoexec]
keyb gr
schubl
Soviel Retro und nur sowenig Zeit... laufender WIP...
8086, 286, 386, 486, P1, P2, P3, P4 und dann noch Amiga, Atari, C64/128,...
Martin-11

Re: Umlaute

Beitrag von Martin-11 »

Hallo schubl

"schwedisch" war nur als Beispiel

[DOS]
keyboardlayout=gr
....hat nichts gebracht

[autoexec]
keyb gr
... hat leider auch nichts gebracht

bei äÄüü komm nichts
Gamepower
MemMaker-Benutzer
Beiträge: 67
Registriert: Fr 18. Jan 2013, 19:49

Re: Umlaute

Beitrag von Gamepower »

versuche mal....

mode con 850

oder so... habe gerade den befehl nicht im kopf, wie man die codepage noch einmal einstellt...
Osmodia

Re: Umlaute

Beitrag von Osmodia »

In der dosbox.conf:

[dos]
...
keyboardlayout=de
Martin-11

Re: Umlaute

Beitrag von Martin-11 »

meinst du so:
mode con codepage select=850
... hat nicht gebracht.


Was ich aber festgestellt habe, ist folgendes auf der Tastatur (nicht Zehnertastur):
wenn .. drückt, dann wird .. angezeigt.
+ ==> ü [super]
shift + ==> Ü
# ==> + [reicht mir auf der 10er Tas.]
shift # ==> *

Somit fehlt mir nur noch ö/Ö
Martin-11

Re: Umlaute

Beitrag von Martin-11 »

Hallo Osmodia

keyboardlayout=de
hat auch nicht geholfen, keine Veränderung.
Osmodia

Re: Umlaute

Beitrag von Osmodia »

Dann stimmt was mit deiner DOSBox nicht, denn genau so und nicht anders geht das bei DOSBox 0.74. Wobei es auch mit "keyboardlayout=auto" schon gehen sollte, das ist der Standardwert.

Du hast aber schon eine deutsche Version von Windows und dort auch alles auf Deutsch gestellt?
Martin-11

Re: Umlaute

Beitrag von Martin-11 »

Hallo Osmodia,

denke schon, dass mit der DOSBox alles stimmt.
Rechner ist alles auf deutsch eingestellt.
Was mich wundert, ist das nur ein Umlaut nicht funktioniert.
Vielleicht werde ich mal die Tastatur tauschen.

Gruß Martin
Martin-11

Re: Umlaute

Beitrag von Martin-11 »

Hallo
ich versuche mal anders an die Sache zu gehen.
Ich möchte den Tastaturwert auslegen und ausgeben, in etwas so:
lese Taste
Print KeyCode bzw. chr$(keycode)

Ich finde keinen Befehl zum Tastenauslesen unter QB4 , kann mir hier jemand helfen?

Gruß Martin
Martin-11

Re: Umlaute

Beitrag von Martin-11 »

habs gefunden... inkey$

zeigt aber bei der Taste Ü auch nicht an.

war ein Versuch wert
Mitfühlender

Re: Umlaute

Beitrag von Mitfühlender »

Könnte das auch mit Unicode 16 Bit unter Windows zusammen hängen?

Habe das gleiche Problem. A..Z, a..z funktionieren, einige Sonderzeichen und ß, ä,ö,ü,Ä,Ö,Ü nicht und in einer Ascii Datei erschinen diese Zeichen als 2 Zeichen, die funktionierenden Zeichen bestehen auch einem einzigen Zeichen. Auch dann brigens, wenn ich als Ausgabtyp einen 8 bittigen String nehme.
mkarcher
LAN Manager
Beiträge: 204
Registriert: Fr 5. Jun 2020, 19:38

Re: Umlaute

Beitrag von mkarcher »

Mitfühlender hat geschrieben: Mo 30. Mai 2022, 19:02 Könnte das auch mit Unicode 16 Bit unter Windows zusammen hängen?

Habe das gleiche Problem. A..Z, a..z funktionieren, einige Sonderzeichen und ß, ä,ö,ü,Ä,Ö,Ü nicht und in einer Ascii Datei erschinen diese Zeichen als 2 Zeichen, die funktionierenden Zeichen bestehen auch einem einzigen Zeichen. Auch dann brigens, wenn ich als Ausgabtyp einen 8 bittigen String nehme.
Ja, mit Unicode schon, aber nicht mit dem 16-Bit-Unicode aus der Windows-Welt. Lass mich einmal ein bisschen zum Thema Unicode ausholen: Unicode ist zunächst einmal ein Zuweisung von Zeichennummern (Ganzzahlen) zu Bedeutungen ("Leerzeichen", "obere Hälfte Integral", "hebräischer Buchstabe Dalet", "lateinischer Buchstabe großes A"). Unicode wurde eingeführt, damit den verschiedenen Codepages (verschiedene Zeichensätze für Amerika mit vielen Grafikzeichen (437), Westeuropa (850), Osteuropa, Russisch, Griechisch, Türkisch, Hebräisch) ein Ende zu setzen, und einen unversell gültigen Zeichensatz zu bekommen. Dabei ist man zunächst davon ausgegangen, dass 65536 Zeichennummern reichen werden. Spätestens, als die CJK-Unification gescheitert ist (wo geplant war, dass gleiche/ähnliche Zeichen aus Chinesich, Japanisch und Koreanisch nur eine einzige Unicode-Nummer bekommen), wurde aber ein Bedarf für mehr Zeichen festgestellt. Da hatte Microsoft in COM/OLE unter Windows 3.x aber bereits 16-Bit-Unicode umgesetzt. Die Darstellung von Unicode-Zeichennummern zwischen 0 und 65535 als 16-Bit-Zahl nennt sich UCS-2 (Unicode Coding Scheme, 2 bytes per character). Auf 32-Bit-Unix-Maschinen war Unicode-Unterstützung direkt mit 32-Bit-Zahlen vorgesehen, das System nennt sich UCS-4, und könnte theroretisch 4 Milliarden verschiedene Zeichen darstellen, wobei nur der positive Bereich von vorzeichenbehafteten 32-Bit-Zahlen zur Benutzung als Unicode-Nummern gedacht war, wodurch nur 2 Milliarden Werte übrig bleiben.

Alle Textdateien mit 4 Byte pro Zeichen zu kodieren kam aber nicht in Frage, deshalb wurde ein Speicher/Übertragungs-Format auf Basis von 8-Bit-Symbolen entworfen, UTF-8 ("Unicode Transformation Format, 8 bits). Dieses Format erlaubt es 7-bit-ASCII-Zeichen in einem Byte darzustellen, europäische Umlaute, kyrillische und hebräische Zeichen mit 2 Byte, alle sonsitigen 16-Bit-Unicode-Zeichen mit 3 Byte, und Zeichen mit Zeichen mit noch größeren Nummern in 4 (bis zu 21 Bit), 5 (bis zu 26 Bit) oder 6 (bis zu 31 Bit) Bytes dargestellt werden. Das das System nicht zu UCS-2 passt, was mit 16-Bit-Einheiten arbeitet, aber durch die Nutzung unter anderem in MS-COM/OLE UCS-2 schon sehr weit verbreitet war, wurde auch eine Erweiterung zu UCS-2 entwickelt. Nicht alle Zahlen unter 65536 waren zu dem Zeitpunkt bereits mit Zeichen versehen, und daher wurde dann im 16-Bit-Bereich ein Bereich von 2048 Zeichen reserviert. 1024 davon heißen "high surrogates" (hohe Ersatzzeichen), und die anderen 1024 "low surrogates" (niedriege Ersatzzeichen). Diese Zeichen treten immer paarweise auf, und ergeben zusammen ein 20-Bit-Nummer für ein "erweitertes Unicode-Zeichen". Das Verfahren, mit Hilfe von Surrogates etwas mehr als eine Million Zeichen darstellen zu können, nennt sich jetzt UTF-16, und definiert den gültigen Zeichenvorrat von Unicode. Es gibt 2^16 Basiszeichen (mit Löchern im Raum, z.B. für die Surrogates) und 2^20 Erweiterungszeichen, so dass eine Unicode-Zeichennummer immer zwischen 0 und 2^16 + 2 ^ 20 - 1 liegt, und damit mit 21 Bits darstellbar ist. Damit wurden dann die 5-Byte und 6-Byte-Formate von UTF-8 ebenfalls obsolet.

Was wir heute also haben, ist "Windows 16-Bit-Unicode" als Bezeichnung für UTF-16, und "UTF-8". Textdateien, in denen US-Zeichen ein Byte belegen, und deutsche Umlaute 2 Byte, sind also UTF-8-kodiert, nicht UTF-16-kodiert. UTF-8 hat sich als das Standardformat für Unicode-Textdateien überall da durchgesetzt, wo Kompatibilität mit UCS-2 nicht notwendig ist. Man sieht die zwei-Byte-Darstellung von Umlauten in UTF-8-kodierten Textdateien dann als zwei Zeichen fehlinterpretiert, zum Beispiel bei Interpretation der Byte-Werte als 8-Bit-Zeichennummern gemäß Codepage 437 (DOS) oder Codepage 1252 (Windows-8-Bit-Zeichensatz "Westeuropa").
Antworten