java-安卓的base64在安卓解码不了,怎么回事

问题描述

安卓的base64在安卓解码不了,怎么回事

在那些解码网站上:http://www1.tc711.com/tool/BASE64.htm是解码出来的,但是在安卓解不出来,不知道为什么??

求熟悉的帮破一下,这个东西搞了一个多少时....搞不懂,都同样的代码,怎么就不行呢?

提示错误:是不是在java有什么特殊情况解码呢?这乱码在网站都是可以解出来

java.lang.IllegalArgumentException: bad base-64

 package china.testfour;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;

public class MainActivity extends AppCompatActivity {

    String context = "WzAwOjAxLjQ2XeS9nOivjTrpu4TlrrbpqbkNClswMDowMi41MV3kvZzmm7I66buE5a626am5DQpbMDA6MzYuODVd5LuN5piv6Zuo5aScDQpbMDA6MzguODZd5Yed5pyb56qX5aSW5rKJ6buY55qE5aSp6ZmFDQpbMDA6NDMuMjZd6Zeu6IuN5aSp5Y+v5Lya55+l5b+D6YeM55qE5oSf6KeJDQpbMDA6NTIuOTZd6ZqP552A5bKB5pyIDQpbMDA6NTQuNjdd5peg5bC954ix5b+16JeP5Zyo5LqO5b+D6YeMDQpbMDA6NTkuMDNd6LGh5Yaw5bCB55qE55y85YWJ5aSx5Y675LqG5pa55ZCRDQpbMDE6MDguNDRd6K6p6Zuo54K56L276L2755qE5rSS6L+HDQpbMDE6MTEuOTdd5by65oqK5b+n6YOB5YaN5o6p55uWDQpbMDE6MTUuMzFd5YOP56KO5pif6Zeq6Zeq5LqO5aSp56m65Y+r5ZSk5L2gDQpbMDE6MjYuNzBd6YGl5pyb55u85pybDQpbMDE6MjguMjBd6IO95YOP5riF6aOO6Zmq5Ly05aW56aOY5Y67DQpbMDE6MzIuNjNd6K6p5a2k5Y2V55qE6IeC5byv5LiA5YaN5oqx57Sn5L2gDQpbMDE6NDIuNDNd5Zue5pyb5b6A5pel5aaC6Zu+5Ly85qKmDQpbMDE6NDUuODhd5peg5aWI55qE6L275Y+55piv5aW555qE5qyi56yR5aOwDQpbMDE6NTIuNzhd6aOO5Ly86L275ZC56L+HDQpbMDE6NTcuOTFd6K6p6Zuo54K56L276L2755qE5rSS6L+HDQpbMDI6MDEuMjdd5by65oqK5b+n6YOB5YaN5o6p55uWDQpbMDI6MDYuNzJd5YOP56KO5pif6Zeq6Zeq5LqO5aSp56m65Y+r5ZSk5L2gDQpbMDI6MTMuOTZd5q+P5aSp5aSa5LmI5aSa5LmI55qE6ZyA6KaBDQpbMDI6MTcuNjZd5rC46L+c5LiO5L2g5oqx5oul552ADQpbMDI6MjEuMjVd5b+Y5o6J5LiW6Ze05LiA5YiH55eb6Ium5oKy5ZOADQpbMDI6MjcuNzhd57q15L2/5YiG5byA5YiG5byA5aSa5LmI6L+cDQpbMDI6MzEuNzBd5Lmf5Lya5ZCs5Yiw5L2g5ZG85ZSkDQpbMDI6MzUuMjhd5pyf5b6F5oiR6L+Z5LiA55Sf5YaN5Lya5L2gDQpbMDM6MjcuNzld5q+P5aSp5aSa5LmI5aSa5LmI55qE6ZyA6KaBDQpbMDM6MzEuNzRd5rC46L+c5LiO5L2g5oqx5oul552ADQpbMDM6MzUuNDNd5b+Y5o6J5LiW6Ze05LiA5YiH55eb6Ium5oKy5ZOADQpbMDM6NDEuOTJd57q15L2/5YiG5byA5YiG5byA5aSa5LmI6L+cDQpbMDM6NDUuOTRd5Lmf5Lya5ZCs5Yiw5L2g5ZG85ZSkDQpbMDM6NDkuNDBd5pyf5b6F5oiR6L+Z5LiA55Sf5YaN5Lya5L2gDQpbMDM6NTYuMThd5q+P5aSp5aSa5LmI5aSa5LmI55qE6ZyA6KaBDQpbMDM6NTkuOTNd5rC46L+c5LiO5L2g5oqx5oul552ADQpbMDQ6MDMuNDZd5b+Y5o6J5LiW6Ze05LiA5YiH55eb6Ium5oKy5ZOADQpbMDQ6MTAuMjFd57q15L2/5YiG5byA5YiG5byA5aSa5LmI6L+cDQpbMDQ6MTQuMDZd5Lmf5Lya5ZCs5Yiw5L2g5ZG85ZSkDQpbMDQ6MTcuNjJd5pyf5b6F5oiR6L+Z5LiA55Sf5YaN5Lya5L2gDQpbMDQ6MjguMjFd5LuN5piv6Zuo5aScDQpbMDQ6MjkuOTZd5Yed5pyb56qX5aSW5rKJ6buY55qE5aSp6ZmFDQpbMDQ6MzQuMzNd6Zeu6IuN5aSp5Y+v5Lya55+l5b+D6YeM55qE5oSf6KeJDQpbMDQ6NDcuODJd6ZqP552A5bKB5pyIDQpbMDQ6NDkuMzdd5peg5bC954ix5b+16JeP5Zyo5LqO5b+D6YeMDQpbMDQ6NTMuNjNd6LGh5Yaw5bCB55qE55y85YWJ5aSx5Y675LqG5pa55ZCRDQo=";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String result = new String(Base64.decode(context,Base64.DEFAULT));

        Log.d("ddd", result);
    }
}

解决方案

import com.sun.org.apache.xml.internal.security.exceptions.Base64DecodingException;
import com.sun.org.apache.xml.internal.security.utils.Base64;

 public static void main(String[] args) {
        String context = "WzAwOjAxLjQ2XeS9nOivjTrpu4TlrrbpqbkNClswMDowMi41MV3kvZzmm7I66buE5a626am5DQpbMDA6MzYuODVd5LuN5piv6Zuo5aScDQpbMDA6MzguODZd5Yed5pyb56qX5aSW5rKJ6buY55qE5aSp6ZmFDQpbMDA6NDMuMjZd6Zeu6IuN5aSp5Y+v5Lya55+l5b+D6YeM55qE5oSf6KeJDQpbMDA6NTIuOTZd6ZqP552A5bKB5pyIDQpbMDA6NTQuNjdd5peg5bC954ix5b+16JeP5Zyo5LqO5b+D6YeMDQpbMDA6NTkuMDNd6LGh5Yaw5bCB55qE55y85YWJ5aSx5Y675LqG5pa55ZCRDQpbMDE6MDguNDRd6K6p6Zuo54K56L276L2755qE5rSS6L+HDQpbMDE6MTEuOTdd5by65oqK5b+n6YOB5YaN5o6p55uWDQpbMDE6MTUuMzFd5YOP56KO5pif6Zeq6Zeq5LqO5aSp56m65Y+r5ZSk5L2gDQpbMDE6MjYuNzBd6YGl5pyb55u85pybDQpbMDE6MjguMjBd6IO95YOP5riF6aOO6Zmq5Ly05aW56aOY5Y67DQpbMDE6MzIuNjNd6K6p5a2k5Y2V55qE6IeC5byv5LiA5YaN5oqx57Sn5L2gDQpbMDE6NDIuNDNd5Zue5pyb5b6A5pel5aaC6Zu+5Ly85qKmDQpbMDE6NDUuODhd5peg5aWI55qE6L275Y+55piv5aW555qE5qyi56yR5aOwDQpbMDE6NTIuNzhd6aOO5Ly86L275ZC56L+HDQpbMDE6NTcuOTFd6K6p6Zuo54K56L276L2755qE5rSS6L+HDQpbMDI6MDEuMjdd5by65oqK5b+n6YOB5YaN5o6p55uWDQpbMDI6MDYuNzJd5YOP56KO5pif6Zeq6Zeq5LqO5aSp56m65Y+r5ZSk5L2gDQpbMDI6MTMuOTZd5q+P5aSp5aSa5LmI5aSa5LmI55qE6ZyA6KaBDQpbMDI6MTcuNjZd5rC46L+c5LiO5L2g5oqx5oul552ADQpbMDI6MjEuMjVd5b+Y5o6J5LiW6Ze05LiA5YiH55eb6Ium5oKy5ZOADQpbMDI6MjcuNzhd57q15L2/5YiG5byA5YiG5byA5aSa5LmI6L+cDQpbMDI6MzEuNzBd5Lmf5Lya5ZCs5Yiw5L2g5ZG85ZSkDQpbMDI6MzUuMjhd5pyf5b6F5oiR6L+Z5LiA55Sf5YaN5Lya5L2gDQpbMDM6MjcuNzld5q+P5aSp5aSa5LmI5aSa5LmI55qE6ZyA6KaBDQpbMDM6MzEuNzRd5rC46L+c5LiO5L2g5oqx5oul552ADQpbMDM6MzUuNDNd5b+Y5o6J5LiW6Ze05LiA5YiH55eb6Ium5oKy5ZOADQpbMDM6NDEuOTJd57q15L2/5YiG5byA5YiG5byA5aSa5LmI6L+cDQpbMDM6NDUuOTRd5Lmf5Lya5ZCs5Yiw5L2g5ZG85ZSkDQpbMDM6NDkuNDBd5pyf5b6F5oiR6L+Z5LiA55Sf5YaN5Lya5L2gDQpbMDM6NTYuMThd5q+P5aSp5aSa5LmI5aSa5LmI55qE6ZyA6KaBDQpbMDM6NTkuOTNd5rC46L+c5LiO5L2g5oqx5oul552ADQpbMDQ6MDMuNDZd5b+Y5o6J5LiW6Ze05LiA5YiH55eb6Ium5oKy5ZOADQpbMDQ6MTAuMjFd57q15L2/5YiG5byA5YiG5byA5aSa5LmI6L+cDQpbMDQ6MTQuMDZd5Lmf5Lya5ZCs5Yiw5L2g5ZG85ZSkDQpbMDQ6MTcuNjJd5pyf5b6F5oiR6L+Z5LiA55Sf5YaN5Lya5L2gDQpbMDQ6MjguMjFd5LuN5piv6Zuo5aScDQpbMDQ6MjkuOTZd5Yed5pyb56qX5aSW5rKJ6buY55qE5aSp6ZmFDQpbMDQ6MzQuMzNd6Zeu6IuN5aSp5Y+v5Lya55+l5b+D6YeM55qE5oSf6KeJDQpbMDQ6NDcuODJd6ZqP552A5bKB5pyIDQpbMDQ6NDkuMzdd5peg5bC954ix5b+16JeP5Zyo5LqO5b+D6YeMDQpbMDQ6NTMuNjNd6LGh5Yaw5bCB55qE55y85YWJ5aSx5Y675LqG5pa55ZCRDQo=";
         String result;
        try {
            result = new String(Base64.decode(context));
             System.out.println(result);
        } catch (Base64DecodingException e) {
            e.printStackTrace();
        }
    }

没问题吖。

时间: 2025-01-25 06:58:45

java-安卓的base64在安卓解码不了,怎么回事的相关文章

java base64编码和解码

Java 中使用base64编码和解码:   第一种方式: 通过反射使用java 中不对外公开的类: Java代码   /***       * encode by Base64       */       public static String encodeBase64(byte[]input) throws Exception{           Class clazz=Class.forName("com.sun.org.apache.xerces.internal.impl.dv.

【项目分析】利用C#改写JAVA中的Base64.DecodeBase64以及Inflater解码

原文:[项目分析]利用C#改写JAVA中的Base64.DecodeBase64以及Inflater解码 最近正在进行项目服务的移植工作,即将JAVA服务的程序移植到DotNet平台中. 在JAVA程序中,有个HTTP请求数据头中,包含一个BASE64编码的字符串,例如: eJyVjMENgDAMA1fpBMjnIkp3ZzZEpAa1PLmXY10sDdqBqr54Ww5AthG7zxJYa0MYr9p7bPFnK/uqjCj06y7JfHwAX3AhhA== 现在需要将这个字符串转化成原始字

Java实现BASE64编码和解码的方法_java

BASE64和其他相似的编码算法通常用于转换二进制数据为文本数据,其目的是为了简化存储或传输.更具体地说,BASE64算法主要用于转换二进制数据为ASCII字符串格式.Java语言提供了一个非常好的BASE64算法的实现,.本文将简要地讲述怎样使用BASE64以及它是怎样工作的. Base64的作用:主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输.由于一些二进制字符在传输协议中属于控制字符,不能直接传送需要转换一下就可以了. 第一种方式: 通过反射使用java 中不对外公开的

android Java BASE64编码和解码二:图片的编码和解码

1.准备工作  (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础     (2)添加 ImgHelper 工具类   package com.app21; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.IOException; import android.graphics.Bitmap; import

JS 实现Base64编码与解码实例详解_javascript技巧

Js实现Base64编码与解码 Base64其实是一种简单的置换加密方式,但是BASE64的用处往往并不是为了防止信息泄露,而且为了方便传输,进过BASE64编码后的信息会比原始信息长,大概是4/3倍. Base64是一种基于64个可打印字符来表示二进制数据的表示方法.由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符. Base64常用于在通常处理文本数据的场合,表示.传输.存储一些二进制数据.包括MIME的email,email via MIME, 在XML中存储复杂数据.

VC中BASE64编码和解码使用详解_C 语言

BASE64可以用来将binary的字节序列数据编码成ASCII字符序列构成的文本.完整的BASE64定义可见 RFC1421和 RFC2045.编码后的数据比原始数据略长,为原来的4/3.在电子邮件中,根据RFC822规定,每76个字符,还需要加上一个回车换行. 转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位.数据不足3byte的话,于缓冲区中剩下的Bit用0补足.然后,每次取出6个bit,按照其值选择ABCDEFGHIJKLMNOPQRSTUVWXY

Js实现Base64编码与解码_JSP编程

Base64是一种基于64个可打印字符来表示二进制数据的表示方法.由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符. Base64常用于在通常处理文本数据的场合,表示.传输.存储一些二进制数据.包括MIME的email,email via MIME, 在XML中存储复杂数据. 1.加密解密方法使用: //1.加密 var str = '124中文内容'; var base = new Base64(); var result = base.encode(str); //doc

Base64在线编码解码实现代码 演示与下载

在线演示地址:gb2312版本 http://tools.jb51.net/tools/base64_decode-gb2312.phputf8版本 http://tools.jb51.net/tools/base64_decode-utf8.php复制代码 代码如下:<?php header('Content-Type: text/html; charset=gb2312'); $txt1 = stripslashes(trim( @$_POST['text1'])); $button = @

base64编码、解码函数

编码|函数 这是我看完几个base64编码.解码函数后自己改写的.因为,在中文操作系统的VBscript中,使用的是unicode字符集,所以很多base64编码.解码函数在理论上是正确的,但实际不能运行! 我加写了几个Unicode与Ansi编码转换的函数,现贴出来,请大家执教! 文件名称base64test.asp <% sBASE_64_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567