从java项目的接口中得到pdf文件的base64编码,问过对方开发,用的sun.misc.base64encoder的方法BASE64Encoder(),我直接用c#的FromBase64String()解码
提示“输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非法字符”
而且我多次测试,同一个pdf文件,用c#的ToBase64String()得到的结果和Java的BASE64Encoder()完全不同,这个问题怎么解决啊?

解决方案 »

  1.   

    C# 说传入串非法,那就是非法了!
    要想究其原因,至少要看到所谓的 base64 串
      

  2.   

    base64 是对二进制数据的序列化。跟语言或者平台毫无关系。
      

  3.   

    Base64有好几种编码方式,换行啊,是哪个特殊字符啊,之类的,都换换试试
      

  4.   

    贴出完整的java代码
      

  5.   

    base64 目前其实有多重写法 标准的就是 52个大小写字母 + 十个数字 + "/" + "+"
    后面两个字符有几个变种,你可以比较一下两边标准,不过感觉似乎不是这个问题
      

  6.   

    不要使用sun.misc.base64encoder类,而且不推荐使用sun开头的内部类,
    使用 org.apache.commons.codec.binary下面的类或者java.util.Base64(jdk8)