• Das kreative Thema des Monats Oktober wird vor allem diejenigen unter Euch besonders ansprechen, denen Do-it-yourself quasi im Blut liegt. Zeigt uns Eure Improvisationskünste oder fotografiert, was andere Leute sich so im Alltag zusammengestrickt haben. --> Zum Mitmachen bitte hier klicken

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