Ich möchte feststellen, ob der Benutzer ein Nicht-ASCII-Zeichen (andernfalls falsch als Unicode bezeichnet) (z. B. り) in einem Dateispeicherdialogfeld eingegeben hat. Während ich Qt verwende, werden alle Nicht-ASCII-Zeichen korrekt in einem QString gespeichert, aber ich kann nicht herausfinden, wie bestimmt werden kann, ob eines der Zeichen in dieser Zeichenfolge Nicht-ASCII ist, bevor die Zeichenfolge in ASCII konvertiert wird. Das obige Zeichen wird als ã‚Š
in das Dateisystem geschrieben.
Es gibt keine solche eingebaute Funktion in meinem Verständnis.
Vor ungefähr 1-2 Jahren schlug ich eine isAscii () - Methode für QString / QChar vor, um das Low-Level-Unix-isacii () und die entsprechende Windows-Funktion zu umbrechen, aber es wurde abgelehnt. Du hättest dann so etwas schreiben können:
%Vor%Ich denke immer noch, dass dies eine praktische Funktion wäre, wenn Sie den Betreuer davon überzeugen könnten. : -)
Abgesehen davon müssten Sie selbst gegen die Ascii-Grenze prüfen, fürchte ich. Sie können dies selbst wie folgt tun:
%Vor%Einzelheiten finden Sie in der Dokumentation:
ushort QChar :: unicode () const
Dies ist eine überladene Funktion.
Der einfachste Weg ist, den Code jedes Charakters zu überprüfen ( QChar :: unicode () ) weniger als 128, wenn Sie reines 7-Bit ASCII benötigen.