base64_encode行为奇怪

时间:2013-02-14 15:47:59

标签: php base64

我正在尝试base64_encode并解码XML请求:

$xml = '<root>
    <term id="KEY">VAL</term>
    <term id="KEY2">VAL2</term>
    <term id="KEY3">VAL3</term>
</root>';
echo base64_encode( $xml );
echo base64_decode( $xml );

为什么这会在解码时返回这些奇怪的内容?

®Š-µêæ‰Ò„aPþ׫š×«š'J•½¿µêæµêæ‰Ò„cu@/íz¹¿®Š-

4 个答案:

答案 0 :(得分:4)

您正在尝试解码原始XML字符串,而不是base64编码字符串。

$xml = '<root>
    <term id="KEY">VAL</term>
    <term id="KEY2">VAL2</term>
    <term id="KEY3">VAL3</term>
</root>';

$encoded_xml = base64_encode( $xml );

echo $encoded_xml;
echo base64_decode( $encoded_xml );

答案 1 :(得分:4)

您正在尝试解码原始XML字符串,而不保存编码版本。

尝试

$xml = '...';
$encoded = base64_encode($xml);
$decoded = base64_decode($encoded);
                         ^^^^^^^^

答案 2 :(得分:3)

这是因为您正在尝试编码XML而不是实际编码的字符串。

答案 3 :(得分:1)

因为您应该解码已经编码的内容,而$xml不是。