c++(Qt) 编码转换

本文介绍了如何在C++中使用QTextCodec进行UTF-8到GBK和GBK到UTF-8的转换,以及如何根据操作系统类型转换为系统编码和Unicode。重点讲解了std::string和QString在不同平台上的编码处理。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值