J'écris un petit tracker Bittorrent sur le framework Django, dans le cadre d'un projet plus vaste. Cependant, j'ai des problèmes avec le décodage du paramètre "info_hash" de la demande d'annonce. Fondamentalement, uTorrent prend le hachage SHA1 du torrent en question et l'URL encode sa représentation hexadécimale, qui est ensuite envoyée au tracker dans une requête GET en tant que paramètre info_hash.Django ne traduit pas correctement la chaîne de requête Bittorrent
Le info_hash
A44B44B0EE8D85A9F7135489D522A19DA2C87C91
est encodée comme:
%a4KD%b0%ee%8d%85%a9%f7%13T%89%d5%22%a1%9d%a2%c8%7c%91
Cependant, Django décode ce à la chaîne Unicode:
u'\ufffdKD\ufffd\ufffd\ufffd\ufffd\ufffd\ufffd\x13T\ufffd\ufffd"\ufffd\ufffd\ufffd\ufffd|\ufffd'
au lieu d'une chaîne littérale comme ceci:
\xa4KD\xb0\xee\x8d\x85\xa9\xf7\x13T\x89\xd5"\xa1\x9d\xa2\xc8|\x91
Comment est-ce que je peux empêcher Django d'essayer de traduire l'info_hash en Unicode, ainsi je peux le rappeler? Mon but est d'obtenir une chaîne littérale que je peux ensuite encoder en une chaîne hexadécimale.
Des pensées? Toutes mes excuses s'il y a un concept d'encodage qui me manque. Merci!
Merci, je ne sais pas s'il y avait un plus manière élégante de le faire. – Alex