问题描述
因为请求java的网站post过去后对方传递过来得到的结果是byte[]数组,我的第一步是采用大家双方约定好的UTF-8编码varcontent=Encoding.UTF8.GetString(bytes).Trim();得到content值:eyJyZXRjb2RlIjoiMjAxMDAxIiwicmV0bXNnIjoi6aqM562-5aSx6LSlIn0然后下边打算先转换为base64,再回转成正常的string,结果下一句代码就错了,提示不是正确的base64字符串。。varbytes=Convert.FromBase64String(content);各位遇到过的是如何解决?
解决方案
解决方案二:
你用你那个所谓的base64,然后随便找个网站看看能逆转不,逆转之后再加密一次,看看是不是一样
解决方案三:
base64是标准的编码,java/c#可以互转,老早之前测试过的。
解决方案四:
base64什么时候有减号了?
解决方案五:
Encoding.UTF8.GetString(bytes).Trim();
解决方案六:
Encoding.UTF8.GetString(bytes).Trim();
解决方案七:
Encoding.UTF8.GetString(bytes).Trim();这个不是base64编码这个才是Convert.ToBase64String(bytes);
解决方案八:
引用4楼danjiewu的回复:
Encoding.UTF8.GetString(bytes).Trim();
什么意思?
解决方案九:
引用1楼feiyun_Web的回复:
你用你那个所谓的base64,然后随便找个网站看看能逆转不,逆转之后再加密一次,看看是不是一样
对方推过来的就是base64了。我尝试了下其他平台也没法正确解码
解决方案十:
引用6楼danjiewu的回复:
Encoding.UTF8.GetString(bytes).Trim();这个不是base64编码这个才是Convert.ToBase64String(bytes);
不好意思,是解码,我帖子内容写错了。就是解码不了。不是要转换成为base64
解决方案十一:
将byte数组逆序排列后再convert试下,我记得有看到java中的数组排列顺序与C#相比是反的
解决方案十二:
不可能。base64通用的
解决方案十三:
可能是变种。+/两个有多种变种。
解决方案十四:
引用9楼tiancaolin的回复:
Quote: 引用6楼danjiewu的回复:
Encoding.UTF8.GetString(bytes).Trim();这个不是base64编码这个才是Convert.ToBase64String(bytes);不好意思,是解码,我帖子内容写错了。就是解码不了。不是要转换成为base64
解码的话,发过来的就应该是string而不是byte[]
解决方案十五:
确认下java内部字符串转byte的使用的编码方式
解决方案:
这个问题我以前好像也遇到过,不是转码的问题是接收字符串的时候出错了
解决方案:
这个直接找下对方,对比一下原始串是否跟你获取到的数据是否一致吧,还有看到有减号的一看就不是正经的base64,还要替换
解决方案:
你先在那种在线转码的网站闻逆转下,看行不行,不行的话,就是有问题了