Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


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.
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

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.
  Répondre


Sujets apparemment similaires...
Sujet Auteur Réponses Affichages Dernier message
  Supprimer les accents dans une chaîne de caractères MenzAgitat 0 3,435 07/10/2013, 21:18
Dernier message: MenzAgitat
  Décoder une chaîne de caractères contenue dans une url CrazyCat 3 3,727 07/10/2013, 16:19
Dernier message: MenzAgitat

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)