PHP base64_encode 给 Javascript btoa 不同的结果

PHP base64_encode giving different result to Javascript btoa

我有虚拟账户:
用户名:giancagallardo@gmail.com
密码:Av3$truz

当我尝试使用 PHP base64_encode 使用代码 base64_encode($userName . ":" . $password);

我得到“Z2lhbmNhZ2FsbGFyZG9AZ21haWwuY29tOkF2Mw

当我使用 Javascript BTOA 使用代码 btoa(userName + ":" + password) 我得到“Z2lhbmNhZ2FsbGFyZG9AZ21haWwuY29tOkF2MyR0cnV6”。

我应该在 PHP 获得第二个,我做错了什么?

我得到了相同的结果。

echo base64_encode('hello' . ':' . 'how are you?');

PHP eval

alert(btoa('hello' + ':' + 'how are you?'));

JS Fiddle

两种情况的结果都是:

aGVsbG86aG93IGFyZSB5b3U/

万一你不明白,你能举个例子吗,就像我做的一样?

请注意,字符编码可能是这里的一个因素,但更有可能是您的变量没有相同的内容。

因为这是您的代码:

$userName = "giancagallardo@gmail.com";
$password = "Av3$truz";

echo base64_encode($userName . ":" . $password);

PHP 正在尝试获取 $truz 的值,将其更改为:

$userName = "giancagallardo@gmail.com";
$password = 'Av3$truz'; //now it does not try to evaluate it or you could scape $ like "Av3$truz"

echo base64_encode($userName . ":" . $password);