如何在C ++中将ASCII std :: string转换为UTF8(Unicode)std :: string?
答案 0 :(得分:5)
std::string ASCIIToUTF8(std::string str) {
return str;
}
每个ASCII字符在UTF8中具有相同的表示形式,因此无需转换。 当然,如果输入字符串使用扩展(8位)ASCII字符集,答案就更复杂了。
答案 1 :(得分:2)
ASCII是一种七位编码,并且相同地映射到可以用ASCII表示的字符子集的UTF-8编码。
简而言之,无所事事。您的ASCII字符串已经是有效的UTF-8。
答案 2 :(得分:0)
我认为通过ASCII表示CP1252或其他8位字符集(ASCII仅为7位,它与UTF-8直接兼容,无需转换)。标准C ++不能这样做。你需要例如要做Glibmm,Qt,iconv或WINAPI。