所以,我有一个需要ping我正在运行的Linux / PHP的堆栈的Web服务器,多数民众赞成这个C#应用程序。 我有问题与C#这样的基地64编码字节。
So I have this c# application that needs to ping my web server thats running linux/php stack. I am having problems with the c# way of base 64 encoding bytes.
我的C#code是这样的:
my c# code is like:
byte[] encbuff = System.Text.Encoding.UTF8.GetBytes("the string");
String enc = Convert.ToBase64String(encbuff);
和PHP端:
$data = $_REQUEST['in'];
$raw = base64_decode($data);
与大串100+碳化的失败。 我认为,这是由于C#添加'+的编码中,但不能肯定。 任何线索
with larger strings 100+ chars it fails. I think this is due to c# adding '+'s in the encoding but not sure. any clues
您或许应该URL连接code你的Base64字符串在C#侧,然后再发送。
You should probably URL Encode your Base64 string on the C# side before you send it.
和C中,它的URL德$ C $在PHP端之前为base64解码它。
And URL Decode it on the php side prior to base64 decoding it.
C#侧
byte[] encbuff = System.Text.Encoding.UTF8.GetBytes("the string");
string enc = Convert.ToBase64String(encbuff);
string urlenc = Server.UrlEncode(enc);
和PHP端:
$data = $_REQUEST['in'];
$decdata = urldecode($data);
$raw = base64_decode($decdata);