Encodage des paramètres d'URL en Python
Les URL contiennent souvent des paramètres qui doivent être codés pour éviter les erreurs et maintenir la compatibilité. En Python, la fonction urllib.quote() est couramment utilisée à cet effet. Cependant, il présente certaines limites :
Encodage amélioré avec urllib.parse.quote()
La documentation Python 3 suggère d'utiliser urllib.parse.quote() :
<code class="python">urllib.parse.quote(string, safe='/', encoding=None, errors=None)</code>
Cette fonction offre un meilleur encodage en permettant à la spécification de caractères supplémentaires de rester sans guillemets. Par défaut, le paramètre safe inclut "/". Passer une chaîne vide pour sécuriser résout le premier problème :
<code class="python">>>> import urllib.parse >>> urllib.parse.quote('/test', safe='') '%2Ftest'</code>
Gestion d'Unicode
Le deuxième problème avec la prise en charge d'Unicode a été résolu dans Python 3. Pour Python 2 , vous pouvez encoder des chaînes Unicode au format UTF-8 pour contourner le problème :
<code class="python">>>> query = urllib.quote(u"Müller".encode('utf8')) >>> print urllib.unquote(query).decode('utf8') Müller</code>
Approche alternative : urlencode()
Pour plus de commodité, envisagez d'utiliser urlencode( ) au lieu de coder manuellement chaque paramètre en pourcentage. Il encode automatiquement les paires clé-valeur, avec prise en charge d'Unicode et des délimiteurs personnalisés :
<code class="python">>>> import urllib.parse >>> params = urllib.parse.urlencode({'name': 'John Doe'}) 'name=John+Doe'</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!