以前我认为ASCII::string只能支持C++字符集。对于其他字符集,例如法语、日语字符,将需要编码例如UTF-8/UTF-16。
我刚刚尝试了下面的代码,看起来C++ std::string已经支持日语和法语了。Guess还支持所有其他语言。
这怎么会发生呢?这是否意味着我们只需要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作品を発表した
Vélo,sac,服装照片: bleu en un«Klein»d'œil pour Noël
发布于 2018-12-17 20:24:17
std::string可以支持任意字节流,包括UTF-8,这就是您在这里看到的。在输入端,您的编译器显然支持它,而在输出端,您的终端程序支持它。
如果您在代码中假设std:: string中的一个char对应于屏幕上的一个字符,则可能会出现问题。但UTF-8并非如此,您可能已经知道了。
https://stackoverflow.com/questions/53815082
复制相似问题