ホームページ > バックエンド開発 > C++ > C で Unicode 文字を正常に出力するにはどうすればよいですか?

C で Unicode 文字を正常に出力するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-09 20:28:12
オリジナル
641 人が閲覧しました

How Can I Successfully Print Unicode Characters in C  ?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート