C での Unicode 文字の印刷
ロシア語のキリル文字「ф」 (U 0444) などの Unicode 文字を印刷しようとしています。 C では難しい場合があります。この記事では、C メソッドを使用して Unicode 文字を正常に出力する方法について説明します。
ユニバーサル キャラクタ名 (UCN) の使用
最も簡単な方法は、ユニバーサル キャラクタ名 (UCN) を使用することです。 )。たとえば、文字 "ф" の Unicode 値は U 0444 です。 C では、これを "u0444" または "U00000444" として表すことができます。
int main() { wchar_t f = '\u0444'; cout << f << endl; }
エンコーディングの使用
ソース コードのエンコーディングが目的の文字をサポートしている場合は、その文字をコード内で直接使用できます。コード。たとえば、UTF-8 エンコードでは、文字 "ф" は 'u0444' です。
char b = '\u0444';
ターミナル エミュレータへの出力
Unicode 文字のターミナルへの出力エミュレータは、エミュレータのエンコーディングと、コンパイラの実行エンコーディングとの互換性によって異なります。一致する場合は、std::cout を使用するだけで十分です。
int main() { std::cout << "Hello, ф or \u0444!\n"; }
Windows 固有の処理
Windows での作業には追加の考慮事項が必要です。 1 つの方法は、_setmode() を使用して出力ファイル ハンドルを UTF-16 に設定することです。
#include <iostream> #include <io.h> #include <fcntl.h> int main() { _setmode(_fileno(stdout), _O_U16TEXT); std::wcout << L"Hello, \u0444!\n"; }
あるいは、移植性を高めるために、ワイド文字列 (wchar_t) を使用し、ワイド ストリーム (std::) に書き込むこともできます。 wcout) を直接。
int main() { wchar_t f = L'\u0444'; // Prepend L to denote wide char literal wcout << f << endl; }
以上がC で Unicode 文字を正常に出力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。