字符串转换const char* , char*,QByteArray,QString,string相互转换,支持中文

本文主要是介绍字符串转换const char* , char*,QByteArray,QString,string相互转换,支持中文,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1.char * 与 const char * 的转换
  • 2.QByteArray 与 char* 的转换
  • 3.QString 与 QByteArray 的转换
  • 4.QString 与 string 的转换
  • 5.QString与const string 的转换
  • 6.QString 与 char* 的转换

在开发中,经常会遇到需要将数据类型进行转换的情况,下面依次给出const char* , char*,QByteArray,QString,string相互转换的方法。支持中文。
转换图示如下:
类型转换图

1.char * 与 const char * 的转换

	char* ch11 = "中国";const char* ch12 = "人民";ch12 = ch11;ch11 = (char*)ch12;std::string str13 = ch12;//char* 转string

2.QByteArray 与 char* 的转换

	char* ch31;QByteArray byte32("中国");ch31 = byte32.data();//QByteArray -> char*QByteArray byte33 = QByteArray(ch31);//char* -> QByteArray 

3.QString 与 QByteArray 的转换

	QByteArray byte41("中国");QString str42 = QString::fromLocal8Bit("人民");byte41 = str42.toLocal8Bit();//QString -> QByteArrayQTextCodec *codec = QTextCodec::codecForName("GBK");QString str43 =codec->toUnicode(byte41);//QByteArray -> QString

4.QString 与 string 的转换

	QString str51 = QString::fromLocal8Bit("中国");std::string	str52 = str51.toLocal8Bit().data();//QString ->stringQTextCodec *codec = QTextCodec::codecForName("GBK");QString str53 =codec->toUnicode(QByteArray((char*)(str52.c_str()))) ;//string -> QString

5.QString与const string 的转换

	const std::string str61= "china";std::string	str62 = (std::string)str61;

6.QString 与 char* 的转换

	QString str71 = QString::fromLocal8Bit("中国");char* ch72 = str71.toLocal8Bit().data();//QString -> char*char * ch73 = "中国";QByteArray byte74(ch73);//QTextCodec *codec = QTextCodec::codecForName("GBK");//QString str75 = byteArrayToUnicode(byte74);QString str75 = codec->toUnicode(byte74);//char* -> QByteArray//字符转换函数
QString byteArrayToUnicode(const QByteArray array)
{// state用于保存转换状态,它的成员invalidChars,可用来判断是否转换成功// 如果转换成功,则值为0,如果值大于0,则说明转换失败QTextCodec::ConverterState state;// 先尝试使用utf-8的方式把QByteArray转换成QStringQString text = QTextCodec::codecForName("UTF-8")->toUnicode(array.constData(), array.size(), &state);// 如果转换时无效字符数量大于0,说明编码格式不对if (state.invalidChars > 0){// 再尝试使用GBK的方式进行转换,一般就能转换正确(当然也可能是其它格式,但比较少见了)text = QTextCodec::codecForName("GBK")->toUnicode(array);}return text;
}

这篇关于字符串转换const char* , char*,QByteArray,QString,string相互转换,支持中文的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/668103

相关文章

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

C++ STL-string类底层实现过程

《C++STL-string类底层实现过程》本文实现了一个简易的string类,涵盖动态数组存储、深拷贝机制、迭代器支持、容量调整、字符串修改、运算符重载等功能,模拟标准string核心特性,重点强... 目录实现框架一、默认成员函数1.默认构造函数2.构造函数3.拷贝构造函数(重点)4.赋值运算符重载函数

redis数据结构之String详解

《redis数据结构之String详解》Redis以String为基础类型,因C字符串效率低、非二进制安全等问题,采用SDS动态字符串实现高效存储,通过RedisObject封装,支持多种编码方式(如... 目录一、为什么Redis选String作为基础类型?二、SDS底层数据结构三、RedisObject

Python 字符串裁切与提取全面且实用的解决方案

《Python字符串裁切与提取全面且实用的解决方案》本文梳理了Python字符串处理方法,涵盖基础切片、split/partition分割、正则匹配及结构化数据解析(如BeautifulSoup、j... 目录python 字符串裁切与提取的完整指南 基础切片方法1. 使用切片操作符[start:end]2

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

C# $字符串插值的使用

《C#$字符串插值的使用》本文介绍了C#中的字符串插值功能,详细介绍了使用$符号的实现方式,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录$ 字符使用方式创建内插字符串包含不同的数据类型控制内插表达式的格式控制内插表达式的对齐方式内插表达式中使用转义序列内插表达式中使用

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也