默认情况下,我机器中的std :: string是GBK,我在程序中写的字符串是用gbk编码的,但有时候我从服务器上读取数据,数据用UTF-8编码,我想确定chatacter设置字符串正在使用。我看到了utf-8和gbk编码方法,很难自己完成它。
答案 0 :(得分:1)
要检查std::string
是否包含UTF-8内容,请将其解码为UTF-8并查看其是否失败。
要检查std::string
是否包含GBK,请将其解码为GBK并查看其是否失败。
有大量可用的转换库,例如ICONV和ICU,它们通常在大多数平台上预先安装。或者使用特定于平台的API,例如Windows上的MultiByteToWideChar()
(代码页936和54936涵盖GBK,代码页65001涵盖UTF-8)。