将字符与 Qt 中的 Unicode 进行比较
compare a character with an unicode in Qt
if (lineEditText[i] == 'đ' || lineEditText[i] == 'Đ')
lineEditText.replace(i, 1, "d");
我想将 (i( 类型的字符与上述 Unicode 进行比较。但它不起作用。那么我该如何比较呢?
用字符构建QString
并使用它们进行比较:
if (lineEditText[i] == QString("đ")[0] || lineEditText[i] == QString("Đ")[0])
或者使用宽字符文字,以便将它们正确转换为QChar
:
if (lineEditText[i] == L'đ' || lineEditText[i] == L'Đ')
您可以从其十六进制代码生成 unicode 字符并将其传递给 QChar(uint(hexValue)
。只要两边的数据类型相同,就可以与QChar的"=="进行比较。
uint unicodeCapitalD = 0x00D0
unit unicodeSmallD = 0x0111
if (lineEditText[i] == QChar(unicodeSmallD) || lineEditText[i] == QChar(unicodeCapitalD))
//whatever you want to do
编辑:我之前的答案集中在生成包含 unicode 字符而不是QChar
的 QString 上。 QString::fromUcs4()
不起作用,因为您试图将其与 QLineEdit 中的特定字符与 unicode 字符进行比较(我应该生成一个 QChar 而不是 QString 进行比较(。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么比较运算符如此快速
- 我可以使用 g++ 进行三种比较 (<=>) 吗?
- C++ - Unicode Newline
- 比较字符数组
- 将模板化的类型与C++中的某些类/类型进行比较
- C++自定义比较函数
- 如何比较自定义类的std::变体
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- std::设置自定义比较器
- 布尔比较运算符是如何在C++中工作的
- C++将目录中的所有文件与::filesystem进行比较
- 如何将unicode字符串从C++传递到delphi
- shell排序中的交换和比较
- 将 unicode 字符串与 c ++ 符号进行比较?
- 将字符与 Qt 中的 Unicode 进行比较
- 将std::string中的迭代字符与unicode C++进行比较
- c++Unicode字符串与易混淆字符的比较.例如(U 0054)应为==(U03A4)等
- 如何在C++中实现unicode不区分大小写的比较
- 比较 unicode 和 wchar_t C++:"找不到数字文字运算符"运算符" " F""