在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==
结果?这可能吗?
答案 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。