c++(Qt) 编码转换

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值