【问题标题】:Converting Simplifed Chinese GB 2312 text characters into UTF8将简体中文 GB2312 文本字符转换为 UTF 8
【发布时间】:2008-10-21 09:21:32
【问题描述】:

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

【问题讨论】:

    标签: c++ unicode internationalization


    【解决方案1】:

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

    iconv_openiconviconv_close

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-23
        • 1970-01-01
        • 2012-10-23
        • 1970-01-01
        • 2014-02-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多