Communauté francophone sur les Eggdrops
Formater une chaîne de caractères pour l'utiliser dans une url - Version imprimable

+- Communauté francophone sur les Eggdrops (https://forum.eggdrop.fr)
+-- Forum : Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum : Bouts de Scripts (https://forum.eggdrop.fr/forumdisplay.php?fid=17)
+--- Sujet : Formater une chaîne de caractères pour l'utiliser dans une url (/showthread.php?tid=1418)



Formater une chaîne de caractères pour l'utiliser dans une url - CrazyCat - 07/10/2013

Ce bout de code formate une chaîne pour pouvoir l'utiliser dans une url.

Ce code est extrait de Acronym Fetcher fait par MenzAgitat

tcl
proc ::urlencode {data} {
   return [::tcl::string::map {
      " " "%20" "\"" "%22" "#" "%23" "$" "%24" "%" "%25"
      "&" "%26" "'" "%27" "\(" "%28" "\)" "%29" "*" "%2A"
      "+" "%2B" "," "%2C" "." "%2E" "\/" "%2F" ":" "%3A"
      ";" "%3B" "<" "%3C" "=" "%3D" ">" "%3E" "?" "%3F"
      "@" "%40" "\[" "%5B" "\\" "%5C" "\]" "%5D" "^" "%5E"
      "\{" "%7B" "|" "%7C" "\}" "%7D" "~" "%7E" "¡" "%A1"
      "¢" "%A2" "£" "%A3" "¤" "%A4" "¥" "%A5" "¦" "%A6"
      "§" "%A7" "¨" "%A8" "©" "%A9" "ª" "%AA" "«" "%AB"
      "¬" "%AC" "­" "%AD" "®" "%AE" "¯" "%AF" "°" "%B0"
      "±" "%B1" "²" "%B2" "³" "%B3" "´" "%B4" "µ" "%B5"
      "¶" "%B6" "·" "%B7" "¸" "%B8" "¹" "%B9" "º" "%BA"
      "»" "%BB" "¼" "%BC" "½" "%BD" "¾" "%BE" "¿" "%BF"
      "À" "%C0" "Á" "%C1" "Â" "%C2" "Ã" "%C3" "Ä" "%C4"
      "Å" "%C5" "Æ" "%C6" "Ç" "%C7" "È" "%C8" "É" "%C9"
      "Ê" "%CA" "Ë" "%CB" "Ì" "%CC" "Í" "%CD" "Î" "%CE"
      "Ï" "%CF" "Ð" "%D0" "Ñ" "%D1" "Ò" "%D2" "Ó" "%D3"
      "Ô" "%D4" "Õ" "%D5" "Ö" "%D6" "×" "%D7" "Ø" "%D8"
      "Ù" "%D9" "Ú" "%DA" "Û" "%DB" "Ü" "%DC" "Ý" "%DD"
      "Þ" "%DE" "ß" "%DF" "à" "%E0" "á" "%E1" "â" "%E2"
      "ã" "%E3" "ä" "%E4" "å" "%E5" "æ" "%E6" "ç" "%E7"
      "è" "%E8" "é" "%E9" "ê" "%EA" "ë" "%EB" "ì" "%EC"
      "í" "%ED" "î" "%EE" "ï" "%EF" "ð" "%F0" "ñ" "%F1"
      "ò" "%F2" "ó" "%F3" "ô" "%F4" "õ" "%F5" "ö" "%F6"
      "÷" "%F7" "ø" "%F8" "ù" "%F9" "ú" "%FA" "û" "%FB"
      "ü" "%FC" "ý" "%FD" "þ" "%FE" "ÿ" "%FF"
   } $data]
}



Source modifiable


RE: urlencode - MenzAgitat - 07/10/2013

Je ne suis pas sûr qu'il soit très opportun de mettre ce bout de code ici.

Acronym Fetcher est un de mes plus anciens scripts et je viens de le remettre un peu au goût du jour, mais cette proc est d'origine et j'ai oublié de remettre son utilité en question.

Il me semble que ::http::formatQuery fait la même chose.


RE: urlencode - CrazyCat - 07/10/2013

Je suis bien d'accord, mais il y a une raison (presque) intelligente pour laquelle j'ai mis cette fonction, ainsi que urldecode, qui est une fonction qui n'est que très rarement utilisée: ce n'est pas parce qu'on manipule des chaînes de type url que l'on fait des accès http, donc le package http n'est pas forcément chargé.

Mais bon, c'est vraiment un cas très particulier d'utilisation.

Par ailleurs, je me demande si avant tcl 8.4 (oui, il y en a qui trainent encore de très vieux systèmes) et donc l'utilisation de la version tcl de http, on est pas obligé d'utiliser cette fonction pour avoir une url propre.