| |

Fortgeschrittene ProgrammierungRe: kyrillische Schrift | |  | Autor: Thoro | Datum: 22.03.04 13:05 |
| Hallo GeRo,
also das ganze hängt mit der Zeichencodierung zusammen. Wie du wahrscheinlich weißt, wird ja intern jedes Schriftzeichen als ein Zahlwert repräsentiert. Erst wenn das Zeichen auf dem Bildschirm oder dem Drucker ausgegeben werden soll, schaut Windows in der gewähltem Schriftartdatei nach, welches grafische Zeichen sich hinter dem Zahlwert XY verbirgt. Damit in jeder Schriftartdatei das Zeichen X auch immer dem gleichen Zahlwert zugeordnet ist, braucht man eine eindeutige Festlegung dafür, eine Codierungstabelle. Die auch heute noch gängigste ist die ASCII-Tabelle, die 8-bit Zahlenwerte, also 256 verschiedene Schriftzeichen unterstützt. Das reicht für die komplette lateinische Schrift plus der vielen Sonderzeichen westeuropäischer Länder aus.
Mit zunehmender Verbreitung des Computers mussten jedoch weitere Schriftzeichen eingeführt werden. Da man alles mit der ASCII-Tabelle kompatibel halten wollte, ergänzte man die Tabelle zunächst nicht, sondern tauschte die westeuropäischen Sonderzeichen (alle Zeichen nach 127) gegen die der jeweiligen Schrift aus. Dadurch bekommen jetzt aber alle Zeichen nach 127 eine mehrfache Bedeutung, abhängig davon welche Schriftartdatei für die Ausgabe genutzt wird.
Jetzt zu deinem Problem mit der Form.Caption: Du gibst vielleicht ein kyrillisches Zeichen ein, dass intern dann zum Zahlwert 158 (als Beispiel) umgewandelt wird. Die Titelzeilen der Fenster unter Windows, werden im deutschen Windows aber mit westeuropäischen Schriftarten beschrieben. Also wird das Zeichen 158 als westeuropäisches Sonderzeichen ausgegeben.
Lösung: Da man den Anwender schlecht zwingen kann, immer seine Schriftart der Titelzeile zu ändern, musst du die Titelzeilen zwangsläufig mit lateinischen Buchstaben darstellen. Verwende in deinem Fall auch keine deutschen Sonderzeichen, da dies dann zu selbigen Problemen unter einem russischen Windows führen würde. Die "normalen" lateinischen Buchstaben sind dagegen in (fast) jeder Schriftartdatei definiert.
Jetzt wieder ein bissel Vorerläuterungen: Um dieses obige Problem in Zukunft zu vermeiden hat man die Unicode-Tabelle eingeführt, die aus 16-bit Zahlenwerten besteht, also 65536 Zeichen besteht. Dadurch ist es möglich den Schriftzeichen aller heute verwendeter Schriften auf der ganzen Welt einen eindeutigen Zahlwert zuzuweisen. Dieses Unicode-System, welches übrigens bei Textdateien den Speicherbedarf verdoppelt, wird innerhalb von Windows schon sehr rege genutzt und auch schon von einigen Programmen genutzt, besonders bei Webbrowsern.
Scheinbar kopiert auch MS Word nicht den ASCII-Wert, sondern den Unicode-Wert in die Zwischenablage. Wenn du das dann im Codefenster von VB einfügst, wo nur eine ASCII-Schriftart verwendet wird, gibt Windows Fragezeichen aus, weil die Schriftart das entsprechende Unicode-Zeichen nicht darstellen kann.
Lösung: Vielleicht ist es möglich Word dazu zu bringen den ASCII-Wert zu kopieren. Habe das leider selbst noch nicht gebraucht, weswegen ich das nicht genau weiß. Dann kannst du den Text kopieren, was im Editorfenster von VB erst mal wieder zu westeuropäischen Sonderzeichen führt (s.o.). Schreibst du den Inhalt aber in ein Textfeld, welches eine kyrillische Schrift enthält, werden die Zeichen dort wieder korrekt angezeigt. Was auch noch möglich ist, dass du dir eine echte Unicode-Schriftartdatei herunterlädst, und diese als Schriftart für das VB-Codefenster auswählst. Dann dürfte alles ohne Probleme funktionieren.
Hier findest du eine geeignete Schriftart für den Editor:
http://www.evertype.com/emono
Wäre nett, wenn du mal zurückschreibst, ob meine Ideen richtig waren. |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevCommand 4.0 
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|