• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Sonderzeichen in GET URL übergeben?

belinea

deaktivierter Benutzer
Registriert
12.07.08
Beiträge
351
Ich möchte die Inhalte eines Textfeldes über GET an einen Server übertragen. Sobald ein Nutzer jedoch ein Leerzeichen oder ein Sonderzeichen eingibt kann XCode den String nicht mehr unwrapen (fatal error: unexpectedly found nil while unwrapping an Optional value)

Gibt der Nutzer in das Textfeld helloword ein funktioniert alles
Code:
let url = NSURL(string: "hhtp://www.server.de/save.php?text=helloworld")


Gibt der Nutzer in das Textfeld "hellowörld" oder "hello world" ein, stürzt die App ab
Code:
let url = NSURL(string: "hhtp://www.server.de/save.php?text=hellowörld")


Meine bisherige ""Lösung"" :confused: ist, die Leerzeichen in HTML umzuwandeln. Also in   und den Nutzern zu sagen dass sie keine Umlaute im Textfeld verwenden dürfen. Hat jetzt den Nachteil dass die Texte in der Datenbank nicht mehr leserlich sind ohne vorher die   wieder in Leerzeichen zu wandeln und zweitens man doch immer wieder aus versehen ein Umlaut benutzt.
 
Hallo belinea,

Soncerzeichen in URLs werden encoded. Ein Leerzeichen ist z.B. %20. Dieses encoding gibt es natürlich in Swift. Wie in diesem StackOverflow-Thread beschrieben, einfach das machen:

Code:
var originalString = "test test"
var escapedString = originalString.stringByAddingPercentEncodingWithAllowedCharacters(.URLQueryAllowedCharacterSet())
// escapedString ist nun "test%20test"
 
  • Like
Reaktionen: belinea