環境に問題が発生している可能性があります。あなたは、あなたが実行しているどのようなプラットフォーム/環境と言うが、次のプログラムを取ることはありません。
#include <iostream>
#include <cstdlib>
int main()
{
std::cout << u8"Chào thế giới!" << std::endl;
return EXIT_SUCCESS;
}
これは、Mac OS X上のITERMから次の出力が得られます。 Chào thế giới!
他の(非でユニコード)環境では、同じコードを使用すると、出力時にASCIIとして解釈されるUTF-8文字を取得することがあります。私はWindowsのコマンドラインから何が得られるのか分かりませんが、IDEを使用している場合、IDEはUTF-8をレンダリングしても、しなくてもかまいません。
ここにウェブの例があります。
https://code.sololearn.com/c39N9RN6b4Md/#cpp利回り: Ch├áo thß║┐ giß╗¢i!
しかしhttp://ideone.com/OkkUZsまったく同じコード収量を実行している: Chào thế giới!
それは "文字" を数え、またおそらくC++で正しくUTF-8文字列を処理することを指摘する価値があります、あなたの文字列が有効なUTF-8などであることを確認してください。Unicodeライブラリを使用したいと思うかもしれません。ユニコードで作業するのは簡単ではありません。
私は、https://github.com/nemtrif/utfcppとTinyUTF8の両方を見つけました。これは、hereが優秀なライブラリであることを示しています - 合理的に小さく、シンプルで効果的です。
希望に役立ちます。
あなたの質問には、どの問題が発生しているのか... – jtbandes
あなたは 'wcout'などのワイド文字を見上げて/文字列 –
'の#include '、'のstd ::のsetlocale(LC_ALL、 ""); '、'のstd :: wcout << L」を使用する必要があります。チャオをĐâyLà ".. ..すべてのプラットフォームで動作しますが、どのようなシステムを使用していますか?言語パックがインストールされていないと、Windowsで文字が表示されないことがあります。このコードは私のLinuxの箱の中で、たくさんのロケールがインストールされた状態でうまく動作しますが、私のBSDはそれができるものだけを表示します。なぜなら、ローカルにはインストールされていないからです... –
txtechhelp