1 UTF-8转GBK
std::string UTF8_To_GBK(const std::string utf8String)
{
QTextcodec *codec = gTextcodect :codecrorwame ("GBK");
std::string gbkstring = codec->fromUnicode(utf8String.c_str());
return gbkstring ;
}
2 GBK 转 UTF-8
std::string GBK_To_UTF8(const std::string gbkString)
{
QTextcodec *codec = gTextcodect :codecrorwame ("GBK");
QString gbkstring = codec->toUnicode(gbkString.c_str(),gbkString.size());
return gbkstring.toUtf8().toStdString();
}
3 转换为系统编码
std::stirng QStringToSystemCodec(const QString& str)//转换为系统编码,系统编码一般就是GBK
{
#ifdef _WINDOWS
QTextCodec *codec= QTextCodec::codecForName("system");
#else
QTextCodec *codec= QTextCodec::codecForLocale();
#endif()
std::string to = codec->fromUnicode(str);
return to;
}
4 系统编码转换为Unicode
std::string QStringFromSystemCodec(const char* src)
{
#ifdef _WINDOWS
QTextCodec *codec= QTextCodec::codecForName("system");
#else
QTextCodec *codec= QTextCodec::codecForLocale();
#endif()
std::string to = codec->toUnicode(src).toStdString();
return to;
}
5 QString::fromLocal8Bit
bash QString::fromLocal8Bit
是一个平台相关的函数。
在 Windows 下 就是 gbk 转 utf-8 ;
在 Linux就应该是函数无效。因为Linux平台默认的编码方式就是 utf-8