Codepages in Visual FoxPro
In Visual FoxPro gespeicherte Daten sind oftmals mit einer Codepage markiert, einer Tabelle mit Zeichen und den entsprechenden Nummern im Arbeitsspeicher, die Windows zur korrekten Anzeige der Daten benötigt. Wenn Sie beispielsweise den Buchstaben C in eine DBF-Datei eingeben, wird dieser auf Ihrer Festplatte mit dem Wert 67 gespeichert. Wenn Sie die Datei öffnen, bestimmt Visual FoxPro ihre Codepage, durchsucht die Codepage nach dem Buchstaben, der dem Wert 67 entspricht, und zeigt dann den Buchstaben (C) auf Ihrem Bildschirm an.
Codepages entsprechen, grob gesagt, den unterschiedlichen Alphabeten. Windows unterstützt beispielsweise Codepages für Englisch, Deutsch, skandinavische Sprachen usw. Durch das Verwenden verschiedener Codepages wird es ermöglicht, dass Anwendungen Zeichen aus diesen unterschiedlichen Alphabeten korrekt anzeigen.
Codepages in Visual FoxPro
Visual FoxPro zeigt Daten basierend auf einer Codepage an. Standardmäßig ist dies die aktuell von Windows verwendete Codepage. Sie können die Windows-Codepage jedoch außer Kraft setzen, indem Sie in Ihrer Konfigurationsdatei eine alternative Codepage angeben (hierbei muss es sich um eine gültige Codepage handeln).
Tabellen in Visual FoxPro sind immer mit der Codepage markiert, die aktuell bei der Erstellung der Tabelle verwendet wurde. Wenn Sie die Tabelle nun öffnen, prüft Visual FoxPro die Codepage der Tabelle gegenüber der aktuellen Codepage. Entsprechen sich die Codepages, zeigt Visual FoxPro die Daten so an, wie sie vorliegen. Ist der Tabelle keine Codepage zugewiesen (weil die Tabelle beispielsweise in einer früheren Version von FoxPro erstellt wurde), fordert Visual FoxPro Sie auf, eine Codepage anzugeben, und markiert dann die Datei mit dieser Codepage.
Entspricht die Codepage nicht der aktuell vom System verwendeten Codepage, versucht Visual FoxPro, die Zeichen der Codepage der Tabelle in die der aktuellen umzuwandeln. Wenn Sie also gerade mit Visual FoxPro arbeiten und die englische Codepage ist aktuell die Systemcodepage, dann entspricht das Zeichen ü dem ANSI-Wert 252. Liegt der Tabelle jedoch eine Codepage zugrunde, bei der das Zeichen ü dem ANSI-Wert 219 entspricht, wandelt Visual FoxPro alle Vorkommen des ANSI-Wertes 219 in ANSI 252 um, damit das Zeichen ü korrekt dargestellt wird.
Die Codepageumsetzung arbeitet nicht in allen Fällen perfekt, da Codepages für gewöhnlich Zeichen enthalten, für die es in anderen Codepages keine 1:1-Entsprechungen gibt. Beispielsweise können Sie in Windows keine Daten abbilden, die die MS-DOS-Zeichen zum Zeichnen von Linien enthalten, da die Windows-Codepages keine derartigen Zeichen enthalten. Ebenso können Sie keine mit der russischen Codepage erstellten Daten für eine englische Codepage umsetzen, da es keine 1:1-Entsprechung zwischen den Alphabeten dieser beiden Sprachen gibt. Schließlich kann es auch sein, dass Visual FoxPro nicht über die Zeichenumsetzungstabelle für eine bestimmte Codepage verfügt. In diesem Fall werden die Daten ohne Codepageumsetzung angezeigt. (Visual FoxPro gibt jedoch keine Fehlermeldung aus, um anzuzeigen, dass keine Codepageumsetzung erfolgt.) Jede dieser Situationen kann dazu führen, dass einige Zeichen nicht korrekt dargestellt werden.
Wenn Sie eine Anwendung für ein bestimmtes Gebietsschema erstellen möchten, können Sie Probleme mit der Codepageumsetzung vermeiden, indem Sie beim Erstellen der Anwendungskomponenten die für das Gebietsschema und die Umgebung vorgesehene Codepage verwenden. Wenn Sie z. B. eine Anwendung erstellen möchten, die in Russland verwendet werden soll, sollten Sie die Codepage 1251, 866 oder 10007 für Benutzer einer Windows-, MS-DOS- bzw. Macintosh-Umgebung verwenden. Eine vollständige Liste finden Sie unter Von Visual FoxPro unterstützte Codepages.
Wenn Sie Zeichen eingeben müssen, für die es auf Ihrer Tastatur keine Tasten gibt, können Sie diese Zeichen eingeben, indem Sie zuerst ALT und dann die entsprechende Tastenkombination auf der Zehnertastatur drücken. Denken Sie jedoch daran, dass die gleiche Tastenkombination in verschiedenen Umgebungen oft zu unterschiedlichen Anzeigeergebnissen führt. Wenn Sie beispielsweise ALT+0182 für die Codepage 1252 in Visual FoxPro eingeben, wird ein Paragraphenzeichen (§) angezeigt. Wenn Sie dagegen ALT+1082 für die Codepage 437 in FoxPro für MS-DOS eingeben, wird ein Grafikzeichen angezeigt, das aus zwei vertikalen Linien besteht, die von einer horizontalen Linie gekreuzt werden.
Obwohl Visual FoxPro viele Codepages unterstützt, werden nur einige wenige häufig verwendet. Für Visual FoxPro für Windows verwenden englischsprachige Benutzer normalerweise Codepage 1252. In FoxPro für MS-DOS verwenden englischsprachige Benutzer jedoch meist Codepage 437.
Beim Arbeiten mit Codepages sollten Sie sich in jedem Fall vergewissern, dass Benutzeroberfläche und Daten korrekt angezeigt werden, indem auf die für ein bestimmtes Gebietsschema vorgesehene Codepage zugegriffen wird. Werden auf dem Bildschirm unerwartete Zeichen angezeigt, überprüfen Sie die zugrunde liegende Codepage.
Siehe auch
Eingeben der internationalen Daten | Angeben der Codepage einer DBF-Datei | Entwickeln internationaler Anwendungen | Angeben der Codepage einer Textdatei | Ermitteln der Codepage einer Projektdatei