[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2012
    Beiträge
    1.120

    Wie kann man eine url encoden/decoden?

    Guten Morgen.

    Ich habe mit Schrecken festgestellt, dass meine selbstgebaute Routine zum encoden und decoden einer url nicht korrekt arbeitet. Ich möchte auf der iSeries eine url parsen oder erzeugen. Dazu gibt es ja Umsetzungen. Z.B. wird ein Space in %20 umgesetzt. Ich habe versucht, eine Umsetzung anhand einer runtergeladenen Tabelle zu implementieren. Die meisten Umsetzungen gehen auch. Aber sobald ich z.B. ein "ö" im Parameterteil der url habe, klappt die Umsetzung nicht. Laut Internet wird ein ö in %C3%B6 (also in 2 Zeichen umgesetzt). Das beinhaltet meine Tabelle nicht.
    Hat jemand das Problem bereits mit RPG gelöst? (Java kommt nicht in Frage). Ich habe leider keine API gefunden.

    Dieter

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... ich verstehe zwar nicht, warum Java nicht in Frage kommt...
    wie wärs denn mit:
    SQL Function URLENCODE, oder CGIDEV2 oder HTTPAPI - wobei ich bei keiner dieser Varianten die Hand ins Feuer legen würde ... - fürr mich käme da nur Java in Frage und die Einbindung in RPG sollte da kein Problem sein, wenn man das nicht gerade mit dem JNI Support des Compilers macht.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Vielen Dank. An eine SQL Funktion hatte ich schon gedacht, habe aber keine im Handbuch gefunden (wir sind auf V7.1). Die Funktion URLENCODE wird bei mir leider nicht gefunden.

    HALT: Ein Kollege hat die Funktion gerade gefunden in der Lib SYSTOOLS. Super Tipp. Wir versuchen mal, ob das gewünschte rüberkommt.

    Vielen Dank.
    Dieter

  4. #4
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... die kam erst mit einem PTF (und da gibt es wohl schon mehrere Varianten von...) Das Problem an der Sache ist allerdings, das verschiedene Bestandteile verschieden kodiert werden müssen; von daher würde ich schon zu der Java Einbindung raten.

    D*B

    PS: und selbst mit Java muss man da aufpassen: die Class URLEncoder kann das auch nicht richtig; man muss da erst eine URI erstellen und dann in einen String umwandeln.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  5. #5
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Nochmals danke. SQL wäre für uns mit Sicherheit das einfachste. Wir probieres es mal. Ich wusste bisher gar nicht, dass es eine Lib SYSTOOLS gibt.

    Dieter

  6. #6
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Funktioniert einwandfrei:
    exec sql set :newUrl = SYSTOOLS.URLDECODE(:url,'UTF-8');

    Dieter

Similar Threads

  1. Antworten: 2
    Letzter Beitrag: 02-05-14, 08:42
  2. BINCHAR - wie kann ich das Feld verwenden?
    By harbir in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 31-10-13, 18:10
  3. Kann ich über Visual Basic ein CL starten?
    By hs in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 26-02-03, 09:58
  4. Kann ich CPI2417 unterdrücken?
    By systemer in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 26-02-03, 07:01
  5. Drucker kann nicht gestartet werden
    By Spirou in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 25-02-03, 11:57

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •