• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> 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