Est-il possible qu'une chaîne de caractères générée à partir d'un encodage base64 contienne un espace (' ') ?
Réponses
Trop de publicités?Non. Question suivante ?
http://en.wikipedia.org/wiki/Base64#Variants_summary_table
En fait, les espaces et les CRLF sont généralement ignorés silencieusement pendant le décodage, car ils peuvent apparaître à la suite du découpage de longues chaînes de caractères.
En lisant le http://en.wikipedia.org/wiki/Base64 wiki il semble que dans l'encodage de transfert Base64 pour MIME (RFC 2045) les espaces sont autorisés et rejetés. Dans toutes les autres variantes, ils sont interdits. Ah... et cette question est un doublon : Une chaîne encodée en base64 peut-elle contenir des espaces blancs ?
La sortie de l'encodage Base64 ne comprendra jamais d'espace. FooBabel dispose d'un outil d'encodage en ligne (gratuit) basé sur Apache Codec, où vous pouvez jouer avec des options comme les sauts de ligne et les terminaisons de ligne. codec base64 foobabel
J'ai rencontré cette question lors du débogage d'un code vbscript.
Curieusement, MSFT code de cette manière, au lieu de coder avec un +, il utilisera un ' '. Le MIME peut être corrigé avec s/ /+/g et fonctionnera avec /usr/bin/base64.
Notez qu'il s'agit d'un modèle bien connu pour encoder un fichier en vbscript, et que si vous le suivez en sens inverse, MSFT traitera les espaces et remettra le même fichier. (il ne sera simplement pas interopérable ailleurs).
Function b64(fqfn)
Dim inputStream: Set inputStream = CreateObject("ADODB.Stream")
inputStream.Open
inputStream.Type = 1
inputStream.LoadFromFile(fqfn)
Dim bytes: bytes = inputStream.Read
Dim dom: Set dom = CreateObject("Microsoft.XMLDOM")
Dim elem: Set elem = dom.createElement("tmp")
elem.dataType = "bin.base64"
elem.nodeTypedValue = bytes
b64 = elem.text
End Function
- Réponses précédentes
- Plus de réponses