• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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.
 

bluefirex

Rhode Island Greening
Registriert
13.10.10
Beiträge
482
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