0

我正在尝试对 XML 请求进行 base64_encode 和解码:

$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

4 回答 4

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 );
于 2013-02-14T15:48:46.310 回答
4

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

尝试

$xml = '...';
$encoded = base64_encode($xml);
$decoded = base64_decode($encoded);
                         ^^^^^^^^
于 2013-02-14T15:49:11.717 回答
3

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

于 2013-02-14T15:50:02.573 回答
1

因为你应该解码已经编码的东西,而$xml不是。

于 2013-02-14T15:48:42.403 回答