2

问题是我找不到一种简单的方法来检测和替换ąčęęėįšžQt 中的非 ascii 字符。我从文件中读取了一行喜欢kažkodėl并想将字符替换ž为和。我会感谢任何帮助。ėze

4

2 回答 2

2

对于检测,您可能可以使用QChar::toAscii()并检查结果是否为 0。

查看 的详细信息QString::toAscii(),您实际上可能正在寻找 toLatin1() 。请注意,QString 的 toLatin1() 似乎使用了“?” 对于替换字符,而不是 QChar 的 toAscii() 的“0”。(我不确定 Qt 是否在这里错误地将 latin1 和 ascii 等同起来......但它似乎声称它在文档中)

于 2013-03-25T20:11:16.860 回答
1

由于没有真正的全面解决方案,并且您想用其他某些字符替换某些字符,所以在我看来,您想设置一个 QRegExp 搜索某些字符集,这些字符集被单个字符替换。

另外,请参阅此链接:http ://www.qtcentre.org/threads/38898-Accented-Character


编辑: QString::normalize() 做你想要的吗?请参阅此链接:从 QString 中删除重音符号

于 2013-03-25T20:31:50.333 回答