#include <QApplication>
#include <QTextBrowser>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QString strText = QObject::tr("1234打印汉字");
QTextBrowser tb;
tb.setText(strText);
tb.setGeometry(40, 40, 400, 300);
tb.show();
return a.exec();
}
#include <QApplication>
#include <QTextBrowser>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QString strText = QString::fromLocal8Bit("1234打印汉字");
QTextBrowser tb;
tb.setText(strText);
tb.setGeometry(40, 40, 400, 300);
tb.show();
return a.exec();
}
转入函数 | 转出函数 | 描述 |
fromLocal8Bit | toLocal8Bit | 与操作系统及本地化语言相关,Linux 一般是 UTF-8 字符串,Windows 一般是 ANSI 多字节编码字符串。 |
fromUtf8 | toUtf8 | 与 UTF-8 编码的字符串相互转换。 |
fromUtf16 | utf16 和 unicode |
与 UTF-16(UCS2)编码的字符串互相转换,utf16 函数与 unicode 函数功能一样, 注意没有 to 前缀,因为 QString 运行时的内码就是 UTF-16,字符的双字节采用主机字节序。 |
fromUcs4 | toUcs4 | 与 UTF-32(UCS4)编码的字符串互相转换,一个字符用四个字节编码,占空间多,应用较少。 |
fromStdString | toStdString | 与 std::string 对象互相转换,因为 C++11 规定标准字符串 std::string 使用 UTF-8 编码,这对函数功能与上面 **Utf8 转码函数相同。 |
fromStdWString | toStdWString | 与 std::wstring 对象相互转换,在 Linux 系统里宽字符是四字节的 UTF-32,在 Windows 系统里宽字符是两字节的 UTF-16。因为不同平台有歧义,不建议使用。 |
fromCFString fromNSString |
toCFString toNSString |
仅存在于苹果 Mac OS X 和 iOS 系统。 |
#include <QApplication>
#include <QTextBrowser>
#include <QDebug>
#include <iostream>
using namespace std;
void Testcout(const QString &str)
{
//Locale charset
cout<<str.toLocal8Bit().data()<<endl;
//UTF-8
cout<<str.toUtf8().data()<<endl;
cout<<str.toStdString()<<endl;
//UTF-16, Windows Unicode, UCS2
cout<<str.unicode()<<endl;
cout<<str.utf16()<<endl;
cout<<str.data()<<endl;
//UTF-32, UCS4
cout<<str.toUcs4().data()<<endl;
//wchar_t: Windows = UTF-16; Linux/Unix = UTF-32
wcout<<str.toStdWString();
cout<<endl<<endl;
}
void TestqDebug(const QString &str)
{
//Locale charset
qDebug()<<str.toLocal8Bit().data();
//UTF-8
qDebug()<<str.toUtf8().data();
qDebug()<<str.toStdString().data();
//UTF-16, Windows Unicode, UCS2
qDebug()<<str.unicode();
qDebug()<<str.utf16();
qDebug()<<str.data();
//UTF-32, UCS4
qDebug()<<str.toUcs4().data();
//wchar_t: Windows = UTF-16; Linux/Unix = UTF-32
qDebug()<<str.toStdWString().data();
//QString object
qDebug()<<str;
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QString strText = QObject::tr("1234打印汉字");
QTextBrowser tb;
tb.setText(strText);
tb.setGeometry(40, 40, 400, 300);
tb.show();
//Test cout
Testcout(strText);
//Test qDebug
//TestqDebug(strText);
return a.exec();
}