La conversion de tableau d'octets en base64 chaîne de java
D'essayer de convertir un byte[]
à l'aide de la chaîne base64
org.apache.commons.codec.binary.Base64
..Pour ce mon code java ressemble:
base64String = Base64.encodeBase64URLSafeString(myByteArray);
Mais ce que je vois, c'est certains caractères non valides dans le générés base64
chaîne..
Pourquoi dois-je voir ces ____
lignes dans mon généré base64
Chaîne?
Est-ce une chaîne valide?
Notez la longueur de la chaîne est divisible par quatre.
avez-vous essayé de décodage votre sortie? Aussi, êtes-vous à l'aide de l'encodage base64 données dans une URL. Utiliser le URLSafe version uniquement lors de l'encodage base64 passe en http/get ou une autre url liées à l'opération.
en.wikipedia.org/wiki/Base64#URL_applications
Cela peut vous aider stackoverflow.com/questions/6265912/...
Veuillez fournir le code que vous avez écrit
Tout ce que j'utilise pour convertir les
en.wikipedia.org/wiki/Base64#URL_applications
Cela peut vous aider stackoverflow.com/questions/6265912/...
Veuillez fournir le code que vous avez écrit
Tout ce que j'utilise pour convertir les
byte[]
à chaîne est une seule méthode au, que j'ai déjà dans ma question...OriginalL'auteur Suave Nti | 2012-07-23
Vous devez vous connecter pour publier un commentaire.
avez-vous essayé avec le
encodeBase64String
méthode au lieu d'utiliserencodeBase64URLSafeString
?encodeBase64URLSafeString:
encodeBase64String:
source : org.apache.commons.codec.binaires.Base64 javadoc
OriginalL'auteur Jean-Philippe Caruana
Cela peut être utile
sun.misc
hiérarchie de paquet n'est pas pour un usage public.Je ne veux pas aller avec
sun.misc
OriginalL'auteur Koti
Utilisation
OriginalL'auteur Taran
vous avez (au moins) deux saveurs de base64, de l'original à l'aide de " + " et " /" outre les caractères alphanumériques, et le "lien fort", en utilisant "-" et "_", de sorte que le contenu peut être enfermé dans une URL (ou utilisé comme un nom de fichier, btw).
Il semblerait que vous utilisez un base64 codeur qui a été transformé en "url-safe mode".
apache javadoc pour URLSafeString()
Oh, et
'_'
être le dernier caractère de l'alphabet base64, voir les chaînes de"____"
signifie que vous avez été l'encodage des morceaux de 0xffffff ... , tout comme de voir des "AAAAAA" signifie qu'il ya beaucoup de zéros consécutifs.Si vous voulez être convaincu que c'est un cas normal, il suffit de choisir votre préférée hexadécimal dumper/rédacteur et de vérifier ce que votre entrée binaire ressemblait.
/
et replcaed la econding méthode avecencodeBase64URLSafeString
pour éviter des barres obliques.. Puis tout a commencé avec_
.. Tous j'ai besoin de savoir, c'est le ci-dessus est valable base64 chaîne ?Veuillez suggérer.vous vous demandez si la chaîne correspond à [0-9A-Za-z_-]+ ou [0-9A-Za-z/+]+ ? qui sonne comme un travail pour une regexp.
OriginalL'auteur PypeBros
Par la méthode ci-dessous, vous pouvez convertir en tableau d'octets en Base64
Edit:
Veuillez consulter le guide ci-dessous le lien apache commons
soleil.misc est quelque chose d'interne au Soleil de la mise en œuvre de java/packages javax. Il n'y a aucune garantie qu'il sera toujours là (esp. sur un autre JVM), ni que son interface reste la même à travers les différentes versions de la JVM, autant que je sache.
OriginalL'auteur developer