Drucken von Unicode-Zeichen in C
Beim Versuch, ein Zeichen mit einem Unicode-Wert zu drucken, z. B. den kyrillischen Kleinbuchstaben Ef (U 0444) , funktioniert der folgende Code möglicherweise nicht als erwartet:
int main() { wchar_t f = '1060'; cout << f << endl; }
Lösung:
Um Unicode-Zeichen korrekt zu drucken, gibt es mehrere Methoden:
Universelle Zeichennamen (UCNs):
Literale Zeichen (sofern von der Quellkodierung unterstützt):
Für den Terminaldruck geht der folgende Code von der Kompatibilität zwischen der Ausführungskodierung und dem Terminalemulator aus:
#include <iostream> int main() { std::cout << "Hello, ф or \u0444!\n"; }
Für Windows, Einstellung Das Ausgabedatei-Handle im UTF-16-Modus wird empfohlen:
#include <iostream> #include <io.h> #include <fcntl.h> int main() { _setmode(_fileno(stdout), _O_U16TEXT); std::wcout << L"Hello, \u0444!\n"; }
Für portablen Code kann die folgende Technik verwendet werden verwendet:
#include <iostream> #include <vector> int main() { std::vector<wchar_t> v = {0x444}; std::wcout.write((const wchar_t*)&v[0], 1); }
Das obige ist der detaillierte Inhalt vonWie kann ich Unicode-Zeichen in C korrekt drucken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!