3

以前は、C++ std::string は ASCII 文字セットしかサポートできないと思っていました。フランス語、日本語などの他の文字セットの場合、UTF-8/UTF-16 などのエンコードが必要になります。

以下のコードを試してみたところ、C++ std::string はすでに日本語とフランス語をサポートしているようです。他のすべての言語もサポートしていると思います。

どうすれば起こりますか?すべての人間の言語を処理するには std::string だけが必要だということですか?

string s;

s = "今年1年の世相を4字で振り返る恒例の「創作四字熟語」の優秀・入選50作品を発表した";

string t;

t = "Vélo, sac, appareil photo: bleu en un «Klein» d'œil pour Noël";

cout<<s<<'\n';

cout<<t<<'\n';

出力:

今年1年の世相を4字で振り返る恒例の「創作四字熟語」の優秀・入選50作品を発表した

ヴェロ、サック、アパレル 写真: bleu en un «Klein» d'œil pour Noël

4

1 に答える 1

4

Astd::stringは、UTF-8 を含む任意のバイト ストリームをサポートできます。これは、ここに表示されているものです。入力側では、コンパイラは明らかにそれをサポートしており、出力側では端末プログラムがサポートしています。

charコード内の1 つstd:: stringが画面上の 1 文字に対応すると仮定すると、問題が発生する可能性があります。おそらくすでにご存知のように、これは UTF-8 には当てはまりません。

于 2018-12-17T12:24:17.010 に答える