如何检测和替换Qt中的非ascii字符?

时间:2013-03-25 20:09:09

标签: c++ qt replace character

问题在于,我无法找到一种简单的方法来检测和替换Qt中的ąčęęėįšž等非ascii字符。我从kažkodėl这样的文件中读取了一行,并希望将字符žė替换为ze。我会感激任何帮助。

2 个答案:

答案 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