Ich habe Post-Daten, die ein '+' Zeichen enthält. Sobald es zum Server gelangt, zeigen die rohen Post-Daten das '+' - Zeichen, aber sobald die Post-Daten es in den Param-Hash machen, wurde das '+' - Zeichen in ein Leerzeichen umgewandelt. Irgendwelche Ideen, wie man es NICHT machen kann?Rails: Post-Daten mit einem '+' wird auf ein Leerzeichen gesetzt
Antwort
Versuchen Sie, das + durch% 2B zu ersetzen.
Nicht sicher, warum das passiert. Normalerweise kommen + Zeichen zu den Params. Kannst du deine Rails Versionen posten? Versuchen Sie auch, das "+" - Zeichen mit "+" oder seinem CGI-Äquivalent "% 2B" zu umgehen, um zu sehen, ob es einen Unterschied macht.
Wenn Sie Ihre '+' Zeichen durch '% 2B' ersetzen, sollte das Problem gelöst werden.
Beachten Sie jedoch auch, dass Sie wahrscheinlich auch Ihre kaufmännischen Und-Zeichen, Prozentzeichen und andere Zeichen überprüfen müssen. Der Server, der Ihre Postdaten empfängt, erwartet wahrscheinlich URLE-codierte Daten. Wenn Sie% signs durch% 25 ersetzen, dann ersetzen Sie & durch% 26, ersetzen? Ersetzen Sie mit% 3F # durch% 23 und ersetzen Sie + Zeichen durch% 2B; Sie werden die meisten Probleme behandeln, denen Sie begegnen können.
Eine ausführlichere Liste der Ersetzungen finden Sie unter diesen Links.
gibt es ein Ruby all dies für Sie behandeln ruft so müssen Sie die Zeichen nicht herausfinden, selbst
require 'uri'
url = http://www.google.com?a=this ist ein Test URI.escape (URL, Regexp.new ("[^ # {URI :: Muster :: UNRESERVED}]"))
Werfen Sie einen Blick auf die cgi.escape Methode in der Standardbibliothek, die dies für Sie tun:
irb(main):001:0> require 'cgi' => true irb(main):002:0> CGI.escape 'foo+bar&baz?qux quux/corge' => "foo%2Bbar%26baz%3Fqux+quux%2Fcorge"
Es gibt auch eine CGI.unescape Methode sollten Sie zurück zu konvertieren.
- 1. Html Klassenname Attribut wird mit einem Leerzeichen
- 2. Postdaten mit libcurl
- 3. Wie wird ein Python-Skript auf einem Rails-Server ausgeführt?
- 4. Postdaten mit asp.net Web API
- 5. mongoexport liest ein Feld mit einem Leerzeichen
- 6. fputcsv erstellt ein weiteres Leerzeichen mit Leerzeichen
- 7. Wie wird VAGRANT_CWD auf den Standardwert gesetzt?
- 8. JQuery Cookie Erweiterung wird ein Cookie mit einem Pfad gesetzt wird aber nicht gelesen es
- 9. Get Postdaten, Zend Framework
- 10. Wie gebe ich Text in ein Textfeld ein, indem am Anfang des Feldes ein Leerzeichen gesetzt wird?
- 11. In Rails mit dem Prawn Gem, wie wird die Tischbreite auf 100% gesetzt?
- 12. JavaFX-Koordinatensystem wird standardmäßig auf YUp gesetzt
- 13. Wie wird das Matrixelement auf Umgebungselemente gesetzt?
- 14. Warum wird nach einem Null-Test ein int auf 0 gesetzt?
- 15. Android HttpURLConnection schreiben Postdaten
- 16. gesetzt Programmatically eine TaxonomyField auf einem Listenelement
- 17. Wird free() gesetzt errno?
- 18. SQL Insert binary wird auf 30 gesetzt
- 19. mongodb Suchschlüssel mit einem Leerzeichen
- 20. Postdaten in asp.net Web API mit Header
- 21. Wie wird ein Haltepunkt auf die entsprechende Methode gesetzt, wenn auf eine Schaltfläche geklickt wird?
- 22. Senden Postdaten mit Query Stachel als url
- 23. Wie wird JOptionPane.showConfirmDialog standardmäßig auf Nein gesetzt?
- 24. jQuery Postdaten erhalten
- 25. solr Multicore Postdaten
- 26. Ersetzen von + durch ein Leerzeichen
- 27. Wie gebe ich einen Pfad mit einem Leerzeichen ein?
- 28. Wo kann ein Tracking (permanenter) Cookie in Rails gesetzt werden?
- 29. Wie findet man ein UserPrincipal, wo eine Eigenschaft nicht mit einem PrincipalSearcher gesetzt wird?
- 30. Wie wird ein initialer ID-Wert für eine create_table gesetzt?