Mit Qt/C++ muss ich eine Zeichenfolge mit nur einer Teilmenge von ASCII-Zeichen generieren: Buchstaben, Ziffern, Bindestrich, Unterstrich, Punkt oder Doppelpunkt.Ersetzen Sie alle Nicht-ASCII-Zeichen in einer Zeichenfolge durch ihre ASCII-Entsprechung
Als Eingabe kann ich alles haben.
Also versuche ich, einige Regeln gelten:
- jeder QChar :: isspace wird mit einem Unterstrich
- alle Nicht-ASCII-Zeichen mit einem ASCII-Äquivalent (Beispiel ersetzt wird ersetzt: „é“ wird mit „e“) ersetzt wird
- jeder andere nicht-ASCII-Zeichen
gibt es eine einfache Möglichkeit, mit Qt/C++ entfernt werden die zweite und die dritte Regel anzuwenden?
Danke
Wenn Sie etwas als eine Eingabe haben kann, was für '' 嗨 Charakter sein Ersatz sollte, zum Beispiel? – vahancho
Dies ist möglich, aber Sie müssten eine Unicode-Zeichenkodierung in der Datenbank tatsächlich auf Ihre ANSI-Entsprechungen beschränken. Windows verfügt dazu über eine Betriebssystem-API namens 'WideCharToMultiByte'. Ich bin mir nicht sicher, ob etwas in Qt eingebaut ist. leicht genug zu sagen, indem Sie die Dokumentation konsultieren. Im Allgemeinen besteht die Strategie darin, "unbekannte" Zeichen durch ein generisches Zeichen zu ersetzen, wie das rechteckige Kästchen oder ein einfaches Fragezeichen, anstatt sie einfach zu entfernen, wie es Ihre Regel # 3 vorschlägt. Aber du kannst tun, was du willst; im Allgemeinen nimmt die API eine Flagge. –
@vahancho: mit den "einfachen" Regeln, die ich verwenden möchte, entferne sie einfach. Ich habe eine bessere Wahl, ich bin offen! – Aurelien