urlencode() rückgängig machen

  • Mein AutoIt erhält Daten aus einer Datenbank,
    die mit urlencode() bearbeitet wurden,
    zum anzeigen würde ich das natürlich gerne rückgängig machen, geht das und wenn ja wie?

  • urldecode ist in php, ich wollt aber kein php mit einbauen, falls ich stringreplace nutzen musst, gibts es irgendwo ne Seite die erklärt wie urlencode() welches durch welches Zeichen ersetzt

  • Sieht nicht so wild aus, was da zu ersetzen ist

    Google:

  • Zitat

    Ooops, ist ja encode sry

    Ist zwar nicht von mir aber egal:

    [autoit]

    ; ===================================================================
    ; _HTTPEncodeString($string)
    ;
    ; Encodes a string so it can safely be transmitted via HTTP
    ; Parameters:
    ; $string - IN - The string to encode
    ; Returns:
    ; A valid encoded string that can be used as GET or POST variables.
    ; ===================================================================
    Func _HTTPEncodeString($string)
    Local Const $aURIValidChars[256] = _
    [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _
    0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, _
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, _
    0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, _
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

    Local $sEncoded = ""
    For $i = 1 To StringLen($string)
    Local $c = StringMid($string, $i, 1)
    If $c = " " Then $c = "+"
    If Number($aURIValidChars[Asc($c) ]) Then
    $sEncoded &= $c
    Else
    $sEncoded &= StringFormat("%%%02X", Asc($c))
    EndIf
    Next

    Return $sEncoded
    EndFunc ;==>_WebComposeURL

    [/autoit]
  • Ok habs hinbekommen:

    [autoit]

    func urldecode ( $string )
    $string = StringReplace ( $string, "+", " ")

    [/autoit][autoit][/autoit][autoit]

    for $i = 1 to StringLen ( $string )

    [/autoit][autoit][/autoit][autoit]

    $cur = StringMid ( $string, $i, 1 )
    if $cur = "%" and $i +2 <= StringLen ( $string ) Then

    [/autoit][autoit][/autoit][autoit]

    if StringRegExp ( stringmid ( $string, $i+1, 2 ) , "([0-9A-F]{2})") Then

    [/autoit][autoit][/autoit][autoit]

    $temp = StringLeft ( $string, $i-1 )
    $temp &= chr ( dec ( stringmid ( $string, $i + 1, 2 ) ) )
    $temp &= stringmid ( $string, $i + 3 )
    $string = $temp

    [/autoit][autoit][/autoit][autoit]

    EndIf

    [/autoit][autoit][/autoit][autoit]

    EndIf

    [/autoit][autoit][/autoit][autoit]

    Next

    [/autoit][autoit][/autoit][autoit]

    Return $string

    [/autoit][autoit][/autoit][autoit]

    EndFunc

    [/autoit]


    Ps: Mit _HTTPEncodeString ist trotzdem urlencode gemeint :)
    Veruschs mal mit Bäume.

  • Schon mal probiert was passiert wenn du den String '%%%' schickst?
    Ausserdem er ist Anfänger und wird das wohl kaum verstehen.