Wie lautet die native Codierung für schmale Zeichenfolgen unter Windows?

8

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?

    
Daniel Trebbien 10.01.2011, 17:09
quelle

4 Antworten

8

"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.

    
user257111 10.01.2011, 17:20
quelle
2
___ qstnhdr ___ Wie lautet die native Codierung für schmale Zeichenfolgen unter Windows? ___ answer4649659 ___

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).

    
___ answer4649507 ___

"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.

    
___ tag123c ___ C ist eine universelle Computerprogrammiersprache, die für Betriebssysteme, Bibliotheken, Spiele und andere Hochleistungsanwendungen verwendet wird. Dieses Tag sollte bei allgemeinen Fragen zur C-Sprache verwendet werden, wie in der Norm ISO 9899: 2011 definiert. Fügen Sie ggf. ein versionsspezifisches Tag wie c99 oder c90 für Fragen zu älteren Sprachstandards hinzu. C unterscheidet sich von C ++ und es sollte nicht mit dem C ++ - Tag kombiniert werden, wenn ein rationaler Grund fehlt. ___ tag123c ___ C ++ ist eine universelle Programmiersprache. Es wurde ursprünglich als Erweiterung von C entworfen und behält eine ähnliche Syntax, ist aber jetzt eine komplett andere Sprache. Verwenden Sie dieses Tag für Fragen zu Code, der mit einem C ++ - Compiler kompiliert werden soll. ___ answer4649932 ___

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.

    
___ tag123string ___ Eine Zeichenfolge ist eine endliche Abfolge von Symbolen, die üblicherweise für Text verwendet wird, manchmal jedoch auch für beliebige Daten. ___ tag123winapi ___ Die Windows-API (früher als Win32-API bezeichnet) ist der Kernsatz von Anwendungsprogrammierschnittstellen, die für die Microsoft Windows-Betriebssysteme verfügbar sind. Mit diesem Tag können Sie Fragen zur Entwicklung nativer Windows-Anwendungen mit der Windows-API beantworten. ___ tag123characterencoding ___ Zeichencodierung bezieht sich auf die Art und Weise, wie Zeichen als eine Reihe von Bytes dargestellt werden. Die Zeichenkodierung für das Web ist im Encoding Standard unter https://encoding.spec.whatwg.org/ definiert. ___ answer449525 ___

Windows 1252 . Jukka Korpela hat eine ausgezeichnete Seite zu Zeichenkodierungen mit einer ausführlichen Beschreibung des Windows-Zeichensatzes.

    
___ qstntxt ___

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?

    
___
EmeryBerger 10.01.2011 17:22
quelle
2

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).

    
hillel 10.01.2011 17:38
quelle
1

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.

    
R.. 10.01.2011 18:09
quelle