3

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

4

3 回答 3

6
std::string ASCIIToUTF8(std::string str) {
  return str;
}

每个 ASCII 字符在 UTF8 中都具有相同的表示形式,因此无需转换。当然,如果输入字符串使用扩展的(8 位)ASCII 字符集,答案就更复杂了。

于 2010-02-27T15:17:56.490 回答
2

ASCII 是一种七位编码,并且完全映射到可以用 ASCII 表示的字符子集的 UTF-8 编码。

简而言之,没有什么可做的。您的 ASCII 字符串已经是有效的 UTF-8。

于 2010-02-27T15:18:44.593 回答
0

我假设 ASCII 是指 CP1252 或其他 8 位字符集(ASCII 只有 7 位,它直接与 UTF-8 兼容,无需转换)。标准 C++ 做不到。你需要例如 Glibmm、Qt、iconv 或 WINAPI 来完成它。

于 2010-02-27T15:16:25.783 回答