日期:2014-05-18  浏览次数:21804 次

输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非空白字符。
运行时报如题所述错误

客户端使用android,服务端用.net

android端将字符串转换为Base64编码
Java code
String logText = Util.getCurrentTime() + "  用户:" + PrefsActivity.GetPoliceCode(MainActivity.this)
                + "登录\r\n\r\n";
        // 转换为Base64编码格式
        byte[] textByte = logText.getBytes();
        String textBase64 = Base64.encodeToString(textByte, Base64.DEFAULT);

textBase64:MjAxMS0xMS0wMiAwMzozMDo1MiAg55So5oi377yaNDAxMTIz6YCA5Ye6DQoNCg==MjAxMS0xMS0wMiAwMzozMDo1OSAg55So5oi377yaNDAxMTIz55m75b2VDQoNCg==

服务端接收后作如下处理
C# code
//Base64转换为string
                    byte[] buffer = Convert.FromBase64String(fileText);
                    text = System.Text.ASCIIEncoding.UTF8.GetString(buffer); 

fileText=textBase64

运行到byte[] buffer = Convert.FromBase64String(fileText);时就报错:输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非空白字符。

请高手帮忙解答!!


------解决方案--------------------
textBase64:MjAxMS0xMS0wMiAwMzozMDo1MiAg55So5oi377yaNDAxMTIz6YCA5Ye6DQoNCg==MjAxMS0xMS0wMiAwMzozMDo1OSAg55So5oi377yaNDAxMTIz55m75b2VDQoNCg==

你这个结果有问题吧,感觉是发了2遍MjAxMS0xMS0wMiAwMzozMDo1MiAg55So5oi377yaNDAxMTIz6YCA5Ye6DQoNCg==
------解决方案--------------------
确定你发了2遍了。MjAxMS0xMS0wMiAwMzozMDo1MiAg55So5oi377yaNDAxMTIz6YCA5Ye6DQoNCg==转化成字符结果是 “2011-11-02 03:30:52 用户:401123退出”

------解决方案--------------------
2011-11-02 03:30:52 用户:401123退出
2011-11-02 03:30:59 用户:401123登录

------解决方案--------------------
探讨
textBase64:MjAxMS0xMS0wMiAwMzozMDo1MiAg55So5oi377yaNDAxMTIz6YCA5Ye6DQoNCg==MjAxMS0xMS0wMiAwMzozMDo1OSAg55So5oi377yaNDAxMTIz55m75b2VDQoNCg==

你这个结果有问题吧,感觉是发了2遍MjAxMS0xMS0wMiAwMzozMDo1MiAg55So5oi377ya……