Formater une chaîne de caractères pour l'utiliser dans une url
#1
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
Répondre
#2
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.
Répondre Avertir
#3
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.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté