【发布时间】:2008-10-21 09:21:32
【问题描述】:
如何使用 c++ 将多字节文本字符串(例如简体中文 GB 2312)之间的文本转换为 UTF8?
【问题讨论】:
标签: c++ unicode internationalization
如何使用 c++ 将多字节文本字符串(例如简体中文 GB 2312)之间的文本转换为 UTF8?
【问题讨论】:
标签: c++ unicode internationalization
在 unix 系统上,您最好使用 iconv 库。
您当然必须知道字符编码(EUC-CN、HZ)。
如果不是在unix系统上,请在操作系统中搜索一些支持,手动进行字符转换很难正确。
【讨论】:
WinAPI:MultiByteToWideChar,反之亦然,WideCharToMultiByte。 我可以稍后发布示例。
但是,UTF-8 在应用程序中的表示和使用相当棘手。 MultiByteToWideChar 函数将字符串转换为UTF-16 (UCS2)。我建议您在您的软件内部使用这种格式,并且仅在您的程序需要产生这样的输出时使用 WideCharToMultiByte 将其转换为 UTF-8。这是在 Windows 和 OS X 上进行国际化/unicode 的标准方式。
【讨论】: