如何在不直接将符号(∞)粘贴到我的代码文件中的情况下在C ++中指定Unicode字符INFINITY(U + 221E)?我已经尝试了\ x221e但是会发出警告,并且\ u221e给了我一个带有CIRCUMFLEX(U + 00E2)的拉丁文小写字母。
QString label;
label.append(tr("HP: \u221e\n\n"));
答案 0 :(得分:5)
尝试\ xE2 \ x88 \ x9E。
但要让Qt使用UTF-8,似乎你需要
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
在它之前的某个地方。
答案 1 :(得分:0)
Unicode转义是正确的方法,但路径中的其他内容正在破坏它并将UTF-8显示为Latin-1。
答案 2 :(得分:0)
这是一个16位的Unicode字符。如果使用宽字符串,则16位字符只能表示为单个元素。
尝试
L"HP: \x221E\n\n"
或
u"HP: \x221E\n\n"
您使用的是哪种编码?如果QT预期为UTF-8,那么你实际上需要一个多字节序列来编码该字符。
答案 3 :(得分:0)
这也可以作为替代方案:
label.append(trUtf8("HP: \u221e\n\n"));