QT 中文乱码解决汇总(QString与string、char*互转乱码)

 更新时间:2023年07月17日 10:45:34   作者:高祥xiang  
在QT中使用中文时,经常会碰到论码问题,本文主要介绍了QT 中文乱码解决汇总(QString与string、char*互转乱码),需要的朋友们下面随着小编来一起学习学习吧

简述

在QT中使用中文时,经常会碰到论码问题,特别是在MSVC环境中。这里介绍的是QT5版本的,至于QT4版本的,目前已经很少用到,所以不做介绍,网上也可以找到的。下面我来总结几种解决QT中文乱码问题方法。

一、string或char* 转 QString 中文乱码解决

1、QTextCodec类

首先需要包含加上 QTextCodec 的头文件。

#include <qtextcodec.h> 

然后加上转换方法。

QTextCodec *codec = QTextCodec::codecForName(“GBK”);
win.setWindowTitle(codec->toUnicode(“中文窗口名称”)); 

2、fromLocal8Bit() 方法

此方法是 QString 类下的一个转换字节方法。

win.setWindowTitle(QString::fromLocal8Bit("中文窗口名称"));

3、QStringLiteral() 方法

win.setWindowTitle(QStringLiteral(“中文窗口名称”)); 

二、QString 转 string 中文乱码解决

QString 转std::string 这里有一个比较简单的方式,我封装成接口呈现:

string QStr2Str(const QString qStr)  
{  
    QByteArray data = qStr.toLocal8Bit();  
    return string(data);  
}  

三、QString 转 char* 中文乱码解决

先将QString转换为标准库中的string类型,然后将string转换为char* ;

std::string str = filename.toStdString();
const char* ch = str.c_str();

最后

到此这篇关于QT 中文乱码解决汇总(QString与string、char*互转乱码)的文章就介绍到这了,更多相关QT 中文乱码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • C++中delete和delete[]的区别说明

    C++中delete和delete[]的区别说明

    一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论。希望本文可以对你有所帮助
    2013-02-02
  • C++详解默认参数的构造函数及简单实例代码

    C++详解默认参数的构造函数及简单实例代码

    这篇文章主要介绍了 C++详解默认参数的构造函数及简单实例代码的相关资料,需要的朋友可以参考下
    2017-02-02
  • 用C语言实现简单的三子棋

    用C语言实现简单的三子棋

    这篇文章主要为大家详细介绍了用C语言实现三子棋,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • C语言中的参数传递机制详解

    C语言中的参数传递机制详解

    这篇文章主要介绍了C语言中的参数传递机制,C语言中函数参数的传递有:值传递、地址传递、引用传递这三种形式。下面我们详细探讨下
    2017-04-04
  • C语言实现简单的三子棋项目

    C语言实现简单的三子棋项目

    这篇文章主要为大家详细介绍了C语言实现简单的三子棋项目,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 使用C语言求N的阶乘的方法

    使用C语言求N的阶乘的方法

    这篇文章主要介绍了使用C语言求N的阶乘的方法,包括一道相关的ACM题目示例,需要的朋友可以参考下
    2015-08-08
  • 关于C语言中弱符号与弱引用的实际应用问题

    关于C语言中弱符号与弱引用的实际应用问题

    在编码过程中,我们经常遇到符号重定义的错误问题,本文通过实例代码展示给大家介绍了C语言弱符号与弱引用的实际应用问题,一起看看吧
    2021-09-09
  • C语言中单链表的基本操作指南(增删改查)

    C语言中单链表的基本操作指南(增删改查)

    链表跟数组不同的是非连续存储结构,也就是说实现链表需要一个指针,每用完一个节点指针指向下一个节点,直至表尾,下面这篇文章主要给大家介绍了关于C语言中单链表的基本操作之增删改查的相关资料,需要的朋友可以参考下
    2021-09-09
  • Qt使用QJson模块实现解析Json文件

    Qt使用QJson模块实现解析Json文件

    在项目开发过程中,经常会遇到读写Json文件的需求,掌握Json文件的操作是基础中的基础,下面我们就来看看如何使用QT内置的QJson模块解析Json文件吧
    2023-10-10
  • 详解Ubuntu18.04配置VSCode+CMake的C++开发环境

    详解Ubuntu18.04配置VSCode+CMake的C++开发环境

    这篇文章主要介绍了详解Ubuntu18.04配置VSCode+CMake的C++开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03

最新评论