将简体中文GB2312文本字符转换为UTF8

时间:2008-10-21 09:21:32

标签: c++ unicode internationalization

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

2 个答案:

答案 0 :(得分:3)

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

请参阅iconv_openiconviconv_close

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

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

答案 1 :(得分:2)

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

然而,在应用程序中使用UTF-8相当棘手,更具体地说,使用它。 MultiByteToWideChar函数将字符串转换为UTF-16 (UCS2)。我建议您在内部使用此格式,如果您的程序需要生成此类输出,则只能使用WideCharToMultiByte将其转换为UTF-8。这是在Windows和Windows上进行国际化/ unicode的标准方式。 OS X。