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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-11 17:58:10661ブラウズ

How Can I Correctly Print Unicode Characters in C  ?

C での Unicode 文字の印刷

キリル小文字 Ef (U 0444) などの Unicode 値を持つ文字を印刷しようとする場合、次のコードは機能しない可能性があります期待値:

int main() {
   wchar_t f = '1060';
   cout << f << endl;
}

解決策:

Unicode 文字を正しく印刷するには、いくつかの方法があります:

  • ユニバーサルキャラクター名(UCN):

    • 文字 'ф' は、'u0444' または 'U00000444' として表すことができます。
  • リテラル文字 (ソースでサポートされている場合)エンコード):

    • ソース コードのエンコードがその文字をサポートしている場合は、'ф' として直接記述することができます。

の場合ターミナル印刷では、次のコードは実行エンコーディングとターミナル エミュレーター間の互換性を前提としています:

#include <iostream>

int main() {
    std::cout << "Hello, ф or \u0444!\n";
}

Windows の場合、出力ファイル ハンドルを UTF-16 モードに設定することをお勧めします:

#include <iostream>
#include <io.h>
#include <fcntl.h>

int main() {
    _setmode(_fileno(stdout), _O_U16TEXT);
    std::wcout << L"Hello, \u0444!\n";
}

移植可能なコードの場合、次の手法を使用できます:

#include <iostream>
#include <vector>

int main() {
    std::vector<wchar_t> v = {0x444};
    std::wcout.write((const wchar_t*)&v[0], 1);
}

以上がC で Unicode 文字を正しく出力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。