Die Subversion-API hat eine Anzahl von Funktionen für die Konvertierung von "nativ codierten" Strings zu Zeichenfolgen, die in UTF-8 codiert sind. Meine Frage ist: Was ist diese native Codierung unter Windows? Kommt es auf das Gebietsschema an?
"Nativ codierte" Zeichenfolgen sind Zeichenfolgen, die in die Codepage geschrieben werden, die der Benutzer verwendet. Das sind Zahlen, die basierend auf der richtigen Codepage in die entsprechenden Glyphen übersetzt werden. Angenommen, die Datei wurde auf diese Weise gespeichert und nicht als UTF-8-Datei.
Dies ist eine Kandidatenfrage für Joels Artikel über Unicode .
Speziell:
Irgendwann ist dieser OEM für alle frei geworden kodifiziert im ANSI-Standard. In dem ANSI-Standard, alle waren sich einig Was tun unter 128, was schön war ähnlich wie ASCII, aber es gab viele verschiedene Möglichkeiten, mit dem umzugehen Zeichen ab 128 und höher, abhängig davon, wo du wohnst. Diese verschiedene Systeme wurden als Code bezeichnet Seiten. So zum Beispiel in Israel DOS verwendete eine Codepage namens 862, während Die griechischen Benutzer benutzten 737. Sie waren die gleich unter 128 aber anders als 128 oben, wo all die lustigen Buchstaben residierte. Die nationalen Versionen von MS-DOS hatte Dutzende dieser Codepages, alles von Englisch bis Isländisch und sie hatten sogar ein paar "mehrsprachige" Code-Seiten, die könnten tun Sie Esperanto und Galizisch auf dem gleichen Computer! Beeindruckend! Aber, sagen wir, Hebräisch und Griechisch auf demselben Computer war eine völlige Unmöglichkeit, es sei denn Du hast dein eigenes Programm geschrieben alles mit Bitmap angezeigt Grafiken, weil Hebräisch und Griechisch benötigte unterschiedliche Codepages mit verschiedene Interpretationen des Hochs Zahlen.
Aus dem Header svn_string.h können Sie sehen, dass die relevanten svn_strings nur einfach alte const char * + ein Längenelement sind.
Ich würde vermuten, dass die "nativ codierten" svn-Strings entsprechend Ihrem System-Gebietsschema interpretiert werden (das weiß ich nicht , aber das ist die Konvention). Unter Windows 7 können Sie Ihr Gebietsschema überprüfen, indem Sie "Start - & gt; Systemsteuerung - & gt; Region und Sprache - & gt; Verwaltung - & gt; Gebietsschema ändern" wählen, wobei jeder Wert von Englisch wahrscheinlich die Zeichencodierung von Windows nach sich ziehen würde 1252. Ein anderes Systemgebietsschema, zum Beispiel Hebräisch (Israel) , würde jedoch eine andere Zeichencodierung mit sich bringen (Windows 1255 für den hebräischen Fall).
"Nativ codierte" Zeichenfolgen sind Zeichenfolgen, die in die Codepage geschrieben werden, die der Benutzer verwendet. Das sind Zahlen, die basierend auf der richtigen Codepage in die entsprechenden Glyphen übersetzt werden. Angenommen, die Datei wurde auf diese Weise gespeichert und nicht als UTF-8-Datei.
Dies ist eine Kandidatenfrage für Joels Artikel über Unicode .
Speziell:
Irgendwann ist dieser OEM für alle frei geworden kodifiziert im ANSI-Standard. In dem ANSI-Standard, alle waren sich einig Was tun unter 128, was schön war ähnlich wie ASCII, aber es gab viele verschiedene Möglichkeiten, mit dem umzugehen Zeichen ab 128 und höher, abhängig davon, wo du wohnst. Diese verschiedene Systeme wurden als Code bezeichnet Seiten. So zum Beispiel in Israel DOS verwendete eine Codepage namens 862, während Die griechischen Benutzer benutzten 737. Sie waren die gleich unter 128 aber anders als 128 oben, wo all die lustigen Buchstaben residierte. Die nationalen Versionen von MS-DOS hatte Dutzende dieser Codepages, alles von Englisch bis Isländisch und sie hatten sogar ein paar "mehrsprachige" Code-Seiten, die könnten tun Sie Esperanto und Galizisch auf dem gleichen Computer! Beeindruckend! Aber, sagen wir, Hebräisch und Griechisch auf demselben Computer war eine völlige Unmöglichkeit, es sei denn Du hast dein eigenes Programm geschrieben alles mit Bitmap angezeigt Grafiken, weil Hebräisch und Griechisch benötigte unterschiedliche Codepages mit verschiedene Interpretationen des Hochs Zahlen.
Leider unterstützt die MSVC-Version der C-Bibliothek UTF-8 nicht und verwendet nur alte Codepages, aber cygwin stellt ein UTF-8-Gebietsschema als Teil seiner Emulationsschicht bereit. Wenn Ihr svn auf cygwin basiert, sollten Sie UTF-8 einfach verwenden können.
Windows 1252 . Jukka Korpela hat eine ausgezeichnete Seite zu Zeichenkodierungen mit einer ausführlichen Beschreibung des Windows-Zeichensatzes.
Die Subversion-API hat eine Anzahl von Funktionen für die Konvertierung von "nativ codierten" Strings zu Zeichenfolgen, die in UTF-8 codiert sind. Meine Frage ist: Was ist diese native Codierung unter Windows? Kommt es auf das Gebietsschema an?
Aus dem Header svn_string.h können Sie sehen, dass die relevanten svn_strings nur einfach alte const char * + ein Längenelement sind.
Ich würde vermuten, dass die "nativ codierten" svn-Strings entsprechend Ihrem System-Gebietsschema interpretiert werden (das weiß ich nicht , aber das ist die Konvention). Unter Windows 7 können Sie Ihr Gebietsschema überprüfen, indem Sie "Start - & gt; Systemsteuerung - & gt; Region und Sprache - & gt; Verwaltung - & gt; Gebietsschema ändern" wählen, wobei jeder Wert von Englisch wahrscheinlich die Zeichencodierung von Windows nach sich ziehen würde 1252. Ein anderes Systemgebietsschema, zum Beispiel Hebräisch (Israel) , würde jedoch eine andere Zeichencodierung mit sich bringen (Windows 1255 für den hebräischen Fall).
Tags und Links string c c++ character-encoding winapi