代码之家  ›  专栏  ›  技术社区  ›  Chris Huang-Leaver Tom-Oliver Heidel

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

  •  1
  • Chris Huang-Leaver Tom-Oliver Heidel  · 技术社区  · 16 年前

    在C++语言中,如何将多字节文本字符串之间的文本转换为UTF8,例如简化的中文GB 2312?

    2 回复  |  直到 12 年前
        1
  •  3
  •   Pieter    16 年前

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

    看见 iconv_open , iconv iconv_close

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

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

        2
  •  2
  •   anon6439    16 年前

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

    然而,UTF-8在应用程序中的表示和使用相当棘手。MultiByteToWideChar函数将字符串转换为 UTF-16 (UCS2) . 我建议您在软件内部使用此格式,如果您的程序需要生成此类输出,则仅使用WideChartMultiByte将其转换为UTF-8。这是在Windows&上执行国际化/unicode的标准方法;OSX。