【发布时间】:2011-01-21 19:28:21
【问题描述】:
如何在 C++ 中将 ASCII std::string 转换为 UTF8 (Unicode) std::string?
【问题讨论】:
标签: c++ string unicode ascii utf
如何在 C++ 中将 ASCII std::string 转换为 UTF8 (Unicode) std::string?
【问题讨论】:
标签: c++ string unicode ascii utf
std::string ASCIIToUTF8(std::string str) {
return str;
}
每个 ASCII 字符在 UTF8 中都有相同的表示,所以没有什么可以转换的。 当然,如果输入字符串使用扩展的(8位)ASCII字符集,答案就更复杂了。
【讨论】:
ASCII 是一种七位编码,并且完全映射到可以用 ASCII 表示的字符子集的 UTF-8 编码。
简而言之,没有什么可做的。您的 ASCII 字符串已经是有效的 UTF-8。
【讨论】:
我假设 ASCII 是指 CP1252 或其他 8 位字符集(ASCII 只有 7 位,它直接与 UTF-8 兼容,无需转换)。标准 C++ 做不到。你需要例如Glibmm、Qt、iconv 或 WINAPI 来做。
【讨论】: