zoukankan      html  css  js  c++  java
  • Qt-char*与QString互转

    相关资源:https://blog.csdn.net/qq_20553613/article/details/78774476

    1.char* 转QString

    方法一:直接用QString的构造函数转换,如下:

    char* ch = "acuity";//这种写法在我的QT中报  error: C2440: “初始化”: 无法从“const char [7]”转换为“char *”
    QString str(ch);//error: C2040: “str”:“QString”与“char *”的间接寻址级别不同
    方法二:用QString的静态转换函数获取,如fromUtf8()、fromLocal8bit()、fromUtf16(),如下:

    char sTest[] = "abc";
    char *pTest = sTest;
    QString qTest = QString::fromUtf8(pTest);


    2.QString 转char*

    方法一:借助QByteArray类,也是本人用得最多的方法,如下:

    QString qTest("abc");
    char* pTest;
    QByteArray baTest = qTest.toLatin1();
    pTest = baTest.data();

    第三行一般加上,整合一条语句(pTest=qTest.toLatin1().data())有时会出问题。以上对应英文/ASII码来说,如果涉及中文,建议通用用utf-8格式,可以避免莫名其妙的乱码现。这一点在代码编辑上建议也是使用utf-8格式。如下:

    QString qTest("abc中文");
    char* pTest;
    QByteArray baTest = qTest.toUtf8();
    pTest = baTest.data();

    方法二:

    对于涉及中文情况,也可以先将QString转换为标准库string类型,然后再将string转换为char*。如下:

    QString sTest("abc中文");
    std::string ssTest = sTest.toStdString();
    const char* ch = ssTest.c_str();


  • 相关阅读:
    ConcurrentHashMap 实现缓存类
    maven 时区设置&ip&jdk编译版本
    【Hutool】工具类之日期时间工具-DateUtil
    正则表达式
    kafka connector
    kafka
    debezium、kafka connector 解析 mysql binlog 到 kafak
    网络流
    斜率优化
    8.8
  • 原文地址:https://www.cnblogs.com/FKdelphi/p/12889629.html
Copyright © 2011-2022 走看看