Einzelnen Beitrag anzeigen

Ganymed

Registriert seit: 11. Jun 2003
Ort: Hameln
56 Beiträge
 
Delphi 7 Architect
 
#3

Re: Unterschied zwischen Codepage und Character Set?

  Alt 6. Sep 2007, 14:57
Auch nachdem ich nun mehrere Tage darüber nachgedacht habe, habe ich deine Antwort immer noch nicht verstanden.

Ich habe noch ein wenig recherchiert, konnte aber kaum brauchbaren Informationen finden.

Interessantes fand ich in der Delphi-Hilfe zum Typen TFontCharset (Auszug):
Zitat:
Der Typ TFontCharset repräsentiert den Zeichensatz für eine Schrift.
[...]
Jede Windows-Schriftart unterstützt einen oder mehrere Zeichensätze. Der jeweilige Zeichensatz ist von der verwendeten Schrift abhängig. Welche Schriftarten unterstützt werden, erfahren Sie beim jeweiligen Hersteller.

Die folgenden Tabelle enthält die vordefinierten Konstanten für Standard-Zeichensätze:

Konstante | Wert | Beschreibung
ANSI_CHARSET | 0 | ANSI-Zeichen.
DEFAULT_CHARSET | 1 | Die Auswahl der Schrift erfolgt der Basis der Eigenschaften Name und Size. Wenn die betreffende Schrift auf dem System nicht verfügbar ist, verwendet Windows eine andere Schrift.
GB2312_CHARSET | 134 | Vereinfachte chinesische Zeichen (Festlandchina).
CHINESEBIG5_CHARSET | 136 | Traditionelle chinesische Zeichen (Taiwan).
GREEK_CHARSET | 161 | Griechische Zeichen. Auf NT 3.51-Systemen nicht verfügbar.
TURKISH_CHARSET | 162 | Türkische Zeichen. Auf NT 3.51-Systemen nicht verfügbar.
VIETNAMESE_CHARSET | 163 | Vietnamesische Zeichen. Auf NT 3.51-Systemen nicht verfügbar.
RUSSIAN_CHARSET | 204 | Kyrillische Zeichen. Auf NT 3.51-Systemen nicht verfügbar.
THAI_CHARSET | 222 | Thailändische Zeichen. Auf NT 3.51-Systemen nicht verfügbar.
EASTEUROPE_CHARSET | 238 | Enthält diakritische Zeichen für osteuropäische Länder. Auf NT 3.51-Systemen nicht verfügbar.
[...]
Will heißen: ASCII kennt 128 Zeichen (wegen 7Bit und so). Wenn aber eine Schriftart (z.B. Arial) alle Zeichen/Buchstaben aller Sprachen beinhalten soll, kommt sie damit nicht hin. Ergo wird die Schriftart in "Zeichensätze" unterteilt (ich stelle mir das jetzt wirklich bildlich vor, wie ich einen Kasten mit lateinischen Buchstabenklötzchen habe, einen mit cyrillischen Klötzchen und einen mit chinesischen; in jeden Kasten passen 128 Klötzchen, die alle zur gleichen Schriftart gehören).

Jetzt ziehe ich noch folgende Tabelle aus der Multilizer [http://www.multilizer.com] Dokumentation:
Zitat:
The following table contains the code pages and charsets of Windows and their corresponding languages.
Code Page | Charset | Languages
874 | 222 | Thai
932 | 128 | Japanese
936 | 134 | Chinese (Simplified)
949 | 129, 130 | Korean
950 | 136 | Chinese (Traditional)
1250 | 238 | Albanian, Croatian, Czech, Hungarian, Polish, Romanian, Serbian (Latin), Slovakian, Slovene
1251 | 204 | Belarussian, Bulgarian, Russian, Serbian (Cyrillic), Ukrainian
1252 | 0 | Afrikaans, Basque, Catalan, Danish, Dutch, English, Faeroese, Finnish, French, German, [...]
1253 | 161 | Greek
1254 | 162 | Turkish
1255 | 177 | Hebrew
1256 | 178 | Arabic, Farsi
1257 | 186 | Estonian, Latvian and Lithuanian
1258 | 163 | Vietnamese
Darin kann man -wer hätte das gedacht- in der Spalte "Charset" die Werte aus der TFontCharset-Docu wiederfinden. So hat der griechische Zeichensatz GREEK_CHARSET (161) die CodePage 1253.

CodePage und CharSet scheinen also in einer 1:1-Beziehung zu stehen.

Und sofern ich die Funktion des Character Sets richtig gedeutet habe, bliebe also die Frage, was denn nun eine CodePage (außer dass man sie bei Windows unter "Regions- und Sprachoptionen" einstellen kann) ist und was sie mit dem Charset zu tun hat...
  Mit Zitat antworten Zitat