如何在C#.NET中复制PHP序列化和Base64Encoded字符串

时间:2017-08-23 19:26:51

标签: c# php .net serialization

在PHP中考虑这段代码:

$myObj = "<test>";
$value = base64_encode(serialize($myObj));
print_r ($value)

Result:czo2OiI8dGVzdD4iOw ==

在.NET中我试过这个:

var toSerialize = "<test>";
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(toSerialize);
var encoded = Convert.ToBase64String(plainTextBytes);

Result:PHRlc3Q +

使用.NET,如何获得与PHP相同的czo2OiI8dGVzdD4iOw==结果?这可能吗?

1 个答案:

答案 0 :(得分:0)

如果您编码的字符串已经是字符串,为什么还要调用serialize()/ System.Text.Encoding.UTF8.GetBytes()?只需编码该字符串本身,即

$myObj = "<test>";
$value = base64_encode($myObj);

或在C#中

var myObj = "<test>";
var value = Convert.ToBase64String(myObj);

如果您真正尝试编码的是&#34;对象&#34; (如,一组属性及其值),而不是字符串,那么您需要先将对象转换为相同类型的字符串...例如一个JSON字符串。

对于PHP,它就像json_encode()一样简单。对于.NET ...例如,请参阅this guide