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
Présent sur le Tchat francophone
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.
Toute l'actualité de mes scripts ici (dernière mise à jour le 14/07/2018)
Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
Répondre
#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.
Présent sur le Tchat francophone
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit - Discutez en toute liberté - Transitionnez vers Linux - Discussions dans le Lauragais - Communauté LGBT respectueuse - soutien aux victimes de cybermalveillance - pour les filles par les filles