QT QString踩坑

编码

在main函数中设置 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

QString 转 char*

一:

QByteArray byte_data = str.toUtf8();
char *ch = byte_data.data();

二:

QByteArray byte_data = str.toLocal8Bit();
char *ch = byte_data.data();

三:

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

四:
显式地使用宽字符(wchar_t)或UTF-8才是好方法。

QString str0(QString::fromStdWString(L"数学分析"));
QString str1(QString::fromUtf8(u8"高等代数")); // C++11

五:

QString s1 = "汉语";
QString s2("漢語");
QString s3 = tr("中文")
QString s4 = QStringLiteral("中文");
QString s5 = QString::fromWCharArray(L"中文");
QString s6 = u8"中文";//C++11
QString s7 = tr(u8"中文")

六:
增加VS编译参数:将源码字符集和执行文件字符集指定为UTF-8

请添加图片描述
请添加图片描述

七:

#pragma execution_character_set("utf-8")

八:
pro文件中加入

win32:msvc{
    QMAKE_CXXFLAGS += /source-charset:utf-8 /execution-charset:utf-8
}

https://www.cnblogs.com/liunian1004/p/5912536.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值