Stand zum Zeitpunkt der Veröffentlichung , die Standard genannten C + +0 x ist noch nicht abgeschlossen , so dass es keine direkte Möglichkeit, UTF- 8 in für C + +. Allerdings bieten moderne Betriebssysteme Funktionen, die Sie konvertieren und repräsentieren Zeichenketten in Unicode und andere Zeichensätze lassen . Verwenden Sie die Funktionen in Windows 2000 und höher gebaut, um zu konvertieren ASCII nach UTF8 . Anleitung
1
Öffnen Sie Ihren Texteditor und erstellen Sie eine neue C + +-Quelldatei . Legen Sie die folgenden Zeilen in es , die die Funktionen zur Umwandlung von ASCII in UTF-8 und das Ergebnis auf der Konsole gehören:
# include # include using namespace std ; int main () {char sText [13 ] = "Hallo Welt! ";
2
Fügen Sie den folgenden Code-Zeilen , die die Funktion MultiByteToWideChar verwenden, um die Größe des zu bestimmen UTF- 16 Darstellung des Strings. Sie verwenden diese Größe, um einen neuen Puffer , die die UTF-16- Version der Zeichenfolge halten zuordnen kann :
DWORD dwNum = MultiByteToWideChar ( CP_ACP , 0, sText , -1, NULL , 0); wchar_t * pwText ; pwText = new wchar_t [ dwNum ] ;
3
Geben Sie den folgenden Text in die Datei. Die MultiByteToWideChar Funktion nimmt den ASCII-String und wandelt sie in UTF-16 , Speicherung in den Puffer :
MultiByteToWideChar ( CP_ACP , 0, sText , -1, pwText , dwNum );
4
Geben Sie folgenden Code in die Datei. Die WideCharToMultiByte Funktion sagt Ihnen, die Größe der zurückgegebenen Zeichenfolge , so dass Sie einen Puffer für die UTF- 8-Darstellung können :
dwNum = WideCharToMultiByte ( CP_UTF8 , 0, pwText , -1, NULL, 0 , NULL, NULL ); char * pstext ; pstext = new char [ dwNum ] ;
5
Fügen Sie den folgenden Code, der die UTF-16 -String umwandelt UTF-8, die das Ergebnis speichert in den Puffer Sie gerade erstellt :
WideCharToMultiByte ( CP_UTF8 , 0, pwText , -1, pstext , dwNum , NULL, NULL);
6
Fügen Sie die folgenden Zeilen in die UTF-8 anzeigen und beenden die Hauptfunktion : cout << pstext ;}