问题在于,我无法找到一种简单的方法来检测和替换Qt中的ąčęęėįšž
等非ascii字符。我从kažkodėl
这样的文件中读取了一行,并希望将字符ž
,ė
替换为z
和e
。我会感激任何帮助。
答案 0 :(得分:2)
对于检测,您可以使用QChar::toAscii()
并检查结果是否为0。
查看QString::toAscii()
的详细信息,您实际上可能正在寻找toLatin1()。注意,用于QString的toLatin1()似乎使用'?'替换字符,而不是QChar的toAscii()的'0'。 (我不确定Qt是否错误地将latin1和ascii等同于......但它似乎声称它在文档中)
答案 1 :(得分:1)
由于没有真正的全面解决方案,并且您想要将某些字符替换为其他特定字符,因此您想要为某些字符集设置QRegExp搜索,这些字符集获得replaced单个字符。
另请参阅此链接:http://www.qtcentre.org/threads/38898-Accented-Character
修改强> QString :: normalize()能做你想要的吗? 请看这个链接:Removing accents from a QString