Je souhaite stocker des URL dans une base de données (MySQL dans ce cas) et les traiter en Python. Bien que la base de données et le langage de programmation ne soient probablement pas pertinents pour ma question.URL: Binaire Blob, Unicode ou Encodé Chaîne Unicode?
Dans ma configuration je reçois des chaînes unicode lors de l'interrogation d'un champ de texte dans la base de données. Mais une URL est-elle réellement un texte? L'encodage et le décodage en unicode sont-ils une opération qui devrait être effectuée sur une URL? Ou est-il préférable de faire de la colonne dans la base de données un blob binaire?
Alors, comment gérez-vous ce problème?
Clarification: Cette question ne concerne pas l'encodage de caractères non-ASCII avec la notation en pourcentage. Il s'agit de la distiction qu'unicode représente du texte et les chaînes d'octets représentent un moyen d'encoder ce texte en une séquence d'octets. En Python (avant 3.0) cette distinction est entre les types unicode et str. En MySQL c'est TEXT à BLOBS. Ainsi, les concepts semblent correspondre entre le langage de programmation et la base de données. Mais quelle est la meilleure façon de gérer les URL dans ce schéma?
Je pense que cela fait un bon point pour avoir des URI en Unicode/TEXT, car cela représente mieux le texte lisible par l'homme et ne le convertit en séquences d'octets que lorsque cela est réellement nécessaire. –
La RFC 2396 a été remplacée par la RFC 3986 il y a quatre ans. – bortzmeyer
J'ai repéré celui-là aussi. Je ne pouvais pas trouver de meilleure formulation en 3986, cependant. – MSalters