如何在C ++中将ASCII字符串转换为UTF8字符串?

时间:2010-02-27 15:13:27

标签: c++ string unicode ascii utf

如何在C ++中将ASCII std :: string转换为UTF8(Unicode)std :: string?

3 个答案:

答案 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。