【发布时间】:2014-01-25 16:42:51
【问题描述】:
我想检测用户是否在文件保存对话框中输入了非 ASCII(否则错误地称为 Unicode)字符(例如,り)。当我使用 Qt 时,任何非 ASCII 字符都正确保存在 QString 中,但在将字符串转换为 ASCII 之前,我无法弄清楚如何确定该字符串中的任何字符是否为非 ASCII。上面的那个字符最终会以り 的形式写入文件系统。
【问题讨论】:
-
曾经我有一个 isAscii() 提案,但 thiago 不喜欢它。你可以写“if (!myString.at(x).isAcii()); then...我猜你最终需要自己使用低级 isascii 等。
-
你的意思是创建一个名为り的文件会保存为り?如果是这样,您使用什么来创建文件?
-
好吧,ASCII 字符是 Unicode,但这有点迂腐。出于您的目的,任何值大于 127 (0x7F) 的字符都是“Unicode”。
-
但请注意,您可以选择将文件写入为 UTF8,在这种情况下(如果以后使用相同的属性读取)将保留所有字符。
标签: c++ qt qstring qtcore qchar