[gelöst] String mit + | JavaScript Übergabe an Perlfunktion

Begonnen von HomeAuto_User, 03 November 2019, 00:24:05

Vorheriges Thema - Nächstes Thema

HomeAuto_User

Hallo,

ich habe eine JavaScriptfunktion welche funktioniert aber sobald innerhalb des Strings eine + erscheint wird mir dies immer wieder entfernt.

Funktion
FW_cmd(FW_root+ \'?XHR=1"'.$FW_CSRF.'"&cmd={EPG_FW_Attr_Channels("'.$name.'","\'+Channel+\'","\'+desired_channel+\'")}\');

Variabte Channel mit Wert
SPORT1+

Kommt im Perl immer wieder nur
SPORT1
an.

Oder das Array mit den Werten
var fruits = ["Banan+a", "Orange+", "Apple", "Mango"];

wird zu
Banan a,Orange ,Apple,Mango

Ich habe schon versucht das Ganze zu maskieren oder mit dem Befehl String() versehen aber nichts kommt zum Erfolg.  :o
Eine Mithilfe wäre sehr hilfreich.

MfG

EDIT:
Nach mehrfachen Tests komme ich zum Entschluss, das vermutlich bei der Überhabe JavaScript -> PERL das + durch ein Leerzeichen ersetzt wird  :-[ :'( :'(
Ist das gewollt?  ::)
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

Thorsten Pferdekaemper

Hi,
ich kann mich erinnern, dass ich auch mal das Problem hatte. Das Problem ist, dass URLs eigentlich keine Leerzeichen enthalten können und es daher durch "+" oder "%20" ersetzt wird. Hast Du schonmal versucht, das ganze vor dem Aufruf von FW_cmd durch encodeURIComponent zu jagen bzw. das "+" durch "%2B" zu ersetzen?
Gruß,
   Thorsten
FUIP

HomeAuto_User

Guten Tag,
vielen Dank für die Antworten hier im Forum und auch direkt.

encodeURIComponent ()

ist die Lösung um einen String in JavaScript mit enthaltenem + an Perl zu übergeben.

Soetwas dachte ich mir schon aber war immer nur auf der falschen encode Funktion unterwegs.

Danke
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet