场景需求
数学与我们的工作生活息息相关,平方、次方的概念,也经常出现在我们的工作中。为了更好地展示数学公式中的次方,word、wps有了公式编辑器,通过公式编辑器可以写出漂亮的数学公式,在csdn中编辑文章,同样也支持公式编辑器,这给广大创作者提供了巨大的便利。
然而在编程中,次方作为一种数字上标,想要以字符形式展示出来,就没有那么方便了。一些常用的字符如数字、大小写字母等,是可以通过ASCII码直接输出的,而数字上标这种特殊的符号,则可以通过Unicode表示。
Unicode是为了解决传统字符编码的局限性而产生,为每种语言中每个字符设定了统一且唯一的二进制编码,且满足跨语言、跨平台的文本转换。
本文将教会大家如何在Qt中通过Unicode的utf8实现,将数字上标以字符形式显示在开发的软件中。
获取数字上标的Unicode
想要数字上标,自然要先寻找数字上标的Unicode,推荐一个网站可以查到各个字符的Unicode码,该网站还很贴心的提供了各个语言的支持。
比如数字上标4是2074,可以想查字典一样,找到它所在的位置,点击还可以便捷拷贝不同语言的支持,比如我用C++编,那我就复制\xE2\x81\B4。
为了方便大家,我把数字0-10的码整理了一下。
数字 | Unicode | C/C++ |
0 | 2070 | \xE2\x81\xB0 |
1 | 00B9 | \xC2\xB9 |
2 | 00B2 | \xC2\xB2 |
3 | 00B3 | \xC2\xB3 |
4 | 2074 | \xE2\x81\xB4 |
5 | 2075 | \xE2\x81\xB5 |
6 | 2076 | \xE2\x81\xB6 |
7 | 2077 | \xE2\x81\xB7 |
8 | 2078 | \xE2\x81\xB8 |
9 | 2079 | \xE2\x81\xB9 |
测试1
我想输出“10乘x的0次方加上5乘x的4次方”,当数字上标0和4确认好了后,通过QString的fromUtf8函数将字符串处理下,如下:
QString str = QString::fromUtf8("10x\xE2\x81\xB0+5x\xE2\x81\xB4"); ui->label->setText(str);
写了个Demo测试,点击输出按钮,下方字符串刷新。效果图如下所示:
测试2
我想输出“10乘x的0次方加上5乘x的45次方”,当数字上标0、4和5确认好了后,通过QString的fromUtf8函数将字符串处理下,如下:
QString str = QString::fromUtf8("10x\xE2\x81\xB0+5x\xE2\x81\xB4\xE2\x81\xB5"); ui->label->setText(str);
4和5的数字上标挨着写即可,点击输出按钮,下方字符串刷新。效果图如下所示:
如果我的代码有什么问题,欢迎大家提出异议批评指正,一同进步~
如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!