在网络Http传输中,特使的符号有特殊的作用,不能按照你想象的方式可以顺利传输的,所以导致数据传过去后无法正常解析(因为中途被篡改了),以Base64数据传输来说,就存在+号和/号的问题,先解决+号的传输:
string data = img_64.Replace("+","%2B"); //+号不能传输,替换掉可以,很重要
将字符串的“+”号全部替换成"%2B"就可以了,传输过去到接收端后,解出来的直接就是+号了,不需要再次解码。
还有/这个符号:先直接传输,传到网上后“/”这个字符会变成“\ /”(不是V啊),是反斜杠\加斜杠/,是特殊字符----转义字符,可以理解为\r\n就是换行回车的意思一样,\ /就是/的意思,那怎么在接收端改回来呢:
text_value = text_value000.Replace("\\", ""); //转换字符\,这里用两个\\转译,实际上是一个字符---------重要
这个“\”要理解一下,不是2个\,而是指一个,因为第一个\是转义字符,替换成没有字符,就是删除“\”,这两步操作后,数据被还原到传输状态了。
也是网上搜索很多资料后再自己想的方法,很实用。希望对你有所帮助。