输入的不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符,或者填充字符间包含非空白字符。

Lengyue818 2011-11-02 04:39:18
运行时报如题所述错误

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

android端将字符串转换为Base64编码
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==

服务端接收后作如下处理
//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 字符、两个以上的填充字符,或者填充字符间包含非空白字符。

请高手帮忙解答!!
...全文
2684 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengsb 2011-11-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 javabegin 的回复:]
textBase64:MjAxMS0xMS0wMiAwMzozMDo1MiAg55So5oi377yaNDAxMTIz6YCA5Ye6DQoNCg==MjAxMS0xMS0wMiAwMzozMDo1OSAg55So5oi377yaNDAxMTIz55m75b2VDQoNCg==

你这个结果有问题吧,感觉是发了2遍MjAxMS0xMS0wMiAwMzozMDo1MiAg55So5oi377ya……
[/Quote]
同意,base64编码后的字符串"="字符只能出现在字符串的最后
Lengyue818 2011-11-02
  • 打赏
  • 举报
回复
3楼可以转么?
.net读fileText时,后面自动添加字符“\n”,去掉也还是不行
Lengyue818 2011-11-02
  • 打赏
  • 举报
回复
是不一样的,一条退出记录,一条登录记录。
单个测试是可以的,放在一起就有问题了
真相重于对错 2011-11-02
  • 打赏
  • 举报
回复
2011-11-02 03:30:52 用户:401123退出
2011-11-02 03:30:59 用户:401123登录
javabegin 2011-11-02
  • 打赏
  • 举报
回复
确定你发了2遍了。MjAxMS0xMS0wMiAwMzozMDo1MiAg55So5oi377yaNDAxMTIz6YCA5Ye6DQoNCg==转化成字符结果是 “2011-11-02 03:30:52 用户:401123退出”
javabegin 2011-11-02
  • 打赏
  • 举报
回复
textBase64:MjAxMS0xMS0wMiAwMzozMDo1MiAg55So5oi377yaNDAxMTIz6YCA5Ye6DQoNCg==MjAxMS0xMS0wMiAwMzozMDo1OSAg55So5oi377yaNDAxMTIz55m75b2VDQoNCg==

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

110,549

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧