C#到PHP的base64 EN code /德codePHP、code、EN

2023-09-02 21:46:44 作者:白鹤

所以,我有一个需要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);