话不多说先看效果:
输出的结果中是“\\”的原因是我用的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的的写法就好了。