Verwendung von Unicode (UTF-8) in C ++ [duplizieren]

8

Wenn ich mich richtig erinnere, sind die Standardzeichen- und Zeichenkodierung in C ++ ASCII. Gibt es eine einfache Möglichkeit, die Unicode-Unterstützung zu aktivieren?

    
segfault 07.06.2010, 20:57
quelle

5 Antworten

6

Aktuelles C ++ spezifiziert keine Kodierung in irgendeiner Weise. Sie können in eine tatsächliche Unicode-Bibliothek wie ICU schauen, oder auf einigen Architekturen und Implementierungen können Sie wchar_t benutzen, um Unicode-Strings zu manipulieren und zu halten.

Bearbeiten: Diese Antwort bezog sich auf C ++ 03. Wie bereits erwähnt, gilt es nicht mehr.

    
Crazy Eddie 07.06.2010, 21:07
quelle
3

Es hängt vielmehr davon ab, was Sie mit dem zu bearbeitenden Text machen wollen. Der halbe Punkt von UTF-8 ist, dass Sie den vorhandenen Code nicht ändern müssen, wenn er 8-Bit-Zeichen verarbeitet, und nicht speziell für Zeichen über 128. Natürlich ist strlen die Länge in Bytes und nicht das Zeichen oder Code- Punktanzahl So kann es sein, dass Sie ein Text-in-Text-Programm haben, das UTF-8 direkt verwenden kann. Oder es kann sein, dass Sie eine GUI in Text erstellen und daher mit Ruby und RTL-Text umgehen müssen. In diesem Fall ist Ihr Job viel komplizierter und Sie müssen wahrscheinlich die entsprechenden Bibliotheken auswählen.

    
Pete Kirkham 07.06.2010 21:37
quelle
1

Hängt von der Version von C ++ ab, die Sie verwenden. C ++ 0x (noch nicht vollständig freigegeben, aber immer noch auf vielen Compilern unterstützt) fügt der Sprache native UTF-8-Unterstützung hinzu. Andernfalls unterstützt die Sprache UTF-8 nicht. C ++ 03 und früher unterstützen Unicode durch die Verwendung von Wide Characters (wchar_t).

    
Billy ONeal 07.06.2010 21:06
quelle
-4

Wenn Sie Visual Studio verwenden, dann führt der Einstieg in die Projekteigenschaften und die Definition eines Präprozessors als _UNICODE den Job für u.

aus     
Anuj 08.06.2010 12:02
quelle

Tags und Links