• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> 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