Ich erhalte einen nsstring, der nicht wie "mystring% 201" richtig codiert ist, wobei "mystring 1" sein muss. Wie kann ich alle Zeichen ersetzen, die als UTF8 interpretiert werden könnten? Beachten Sie, dass nsstring bereits falsch codiert ist und ich nicht frage, wie Sie die Zeichensequenz codieren.
- (NSString *)stringByReplacingPercentEscapesUsingEncoding:(NSStringEncoding)encoding
ist was Sie wollen. Verwenden Sie es grundsätzlich so:
newString = [myString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
Überprüfen Sie den Strings and Non-ASCII Characters
-Abschnitt von Formatierungs-String-Objekte :
NSString *s = [NSString stringWithUTF8String:"Long \xe2\x80\x94 dash"];
lblDate.text=[NSString stringWithCString:[[arrTripDetail valueForKey:Param_vCurrencySymbol] UTF8String] encoding:NSUTF8StringEncoding];
U kann konvertieren und benutzerdefinierte Emoji in Zeichenfolge konvertieren
z.B :
eingabe:\U20b9
Ausgabe: ¥
Möchten Sie nur eine prozentuale Kodierung/Dekodierung oder eine vollständige URL-Kodierung/Dekodierung? - (NSString *) stringByReplacingPercentEscapesUsingEncoding: Funktioniert, wenn es sich nur um eine prozentuale Codierung handelt. Wenn es jedoch eine vollständige URL-Codierung gibt (z. B. kann ein Leerzeichen entweder% 20 oder + sein), benötigen Sie etwa die URL-Dekodierung Die Three20-Bibliothek (oder suchen Sie dort nach, es gibt viele Beispiele, wie dies zu tun ist, z. B. URL-Dekodierung/Kodierung NSString ).