1

如何使用 c++ 将多字节文本字符串(例如简体中文 GB 2312)之间的文本转换为 UTF8?

4

2 回答 2

3

在 unix 系统上,您最好使用 iconv 库。

iconv_openiconviconv_close

当然,您必须知道字符编码(EUC-CN,HZ)。

如果不是在 unix 系统上,请在操作系统中搜索一些支持,手动进行字符转换很难正确。

于 2008-10-21T09:46:13.070 回答
2

WinAPI:MultiByteToWideChar,反之亦然,WideCharToMultiByte。我可以稍后发布样本。

然而,UTF-8 在应用程序中的表示,更具体地说,在使用方面相当棘手。MultiByteToWideChar 函数将字符串转换为UTF-16 (UCS2)。我建议你在你的软件内部使用这种格式,并且只有在你的程序需要产生这样的输出时才使用 WideCharToMultiByte 将其转换为 UTF-8。这是在 Windows 和 OS X 上进行国际化/unicode 的标准方式。

于 2008-10-21T09:50:14.200 回答