QT中获取中文字符的Unicode编码

发布于:2022-12-30 ⋅ 阅读:(683) ⋅ 点赞:(0)

话不多说先看效果:

 输出的结果中是“\\”的原因是我用的qDebug()<< 输出,实际是"\",不信的话你可以lenth()查看长度。

如果要换进制,把图中16换掉即可,我加"\\u"是因为这是Unicode专属格式,不需要的话就不用加。

 因为这个是直接处理字符串的,即使是一个字符也能处理,所以我就不写单字符的函数了,原理相同,关于验证编码的正确性可以转到:基本拉丁字母 — ✔️ ❤️ ★ Unicode 字符百科 (unicode-table.com)

下面我也附上C++的处理方案:

#include <stdio.h>
#include <locale.h>
#include <iostream>

using std::wstring;
using std::string;
using std::cout;

void ChineseToUnicode(wstring text)
{
    //设置影响域(本身的环境)
    setlocale(LC_ALL, "chs");

    int i = 0;
    for (i = 0; text[i] != 0; i++)
    {
        wprintf(L"%c \\u%d", text[i], text[i]);
        printf("\n");
    }
}

int main()
{
    ChineseToUnicode(L"煎烤");
    return 0;
}

C++的我没有直接转为可用的字符串,是因为将数字转为字符串属实有些麻烦,虽然之前也写过,但效率有些低,我就不献丑了,能处理这个问题的话也可以参考QT的的写法就好了。


网站公告

今日签到

点亮在社区的每一天
去签到