qt中度和温度符号的显示
1.显示效果
2.代码
// unicode统一码 转为 utf-8编码 字体大小 很大程度上影响符号的美观
quint16 c1[]={0xfe12,0x0043,0};
quint16 c2[]={0x309c,0x0043,0};
quint16 c3[]={0x00B0,0x0043,0};
quint16 c4[]={0x2103,0}; // Unicode温度符号
quint16 c5[]={0xe78e,0x0043,0};
// 字体大小 30
ui->label_2->setText("字体大小-30:"+
QString::fromUtf16(c1)+"|"+
QString::fromUtf16(c2)+"|"+
QString::fromUtf16(c3)+"|"+
QString::fromUtf16(c4)+"|"+
QString::fromUtf16(c5)+"|"+
"");
// 字体大小 9
ui->label_3->setText("字体大小-9 :"+
QString::fromUtf16(c1)+"|"+
QString::fromUtf16(c2)+"|"+
QString::fromUtf16(c3)+"|"+
QString::fromUtf16(c4)+"|"+
QString::fromUtf16(c5)+"|"+
"");
刚开始温度符号很不美观,以为是编码问题
没想到竟然是字体大小的问题 或者说 是布局问题
3.UTF-8转Unicode
QByteArray s = ui->label->text().toUtf8();
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QString unicode_str = codec->toUnicode(s);
qDebug() << unicode_str;
for(int i = 0;i <unicode_str.length();++i)
qDebug() << QString::number(unicode_str[i].unicode(),16);
将QString 先转为utf8 然后用QTextCodec 转为unicode 最后16进制显示
- 参考 https://blog.csdn.net/zhx6044/article/details/17066747 Qt中UTF-8转Unicode