-2
我想通過使用Base64將我的PHP代碼轉換爲紅寶石,但他們不給出相同的結果;PHP的base64和紅寶石是不一樣的結果
PHP code;
<?php
$user_basket = base64_encode(json_encode(array(array("My basket", "18.00", 2))));
echo $user_basket;
?>
which outputs;
W1siTXkgYmFza2V0IiwiMTguMDAiLDJdXQ==
然後我在紅寶石中嘗試同樣的事情;
user_basket = Base64.encode64((([["My basket", "18.00", 2]]).to_json).gsub!(/\"/, '\''))
我把GSUB因爲to_json
增加反斜槓。
這個輸出;
"W1snTXkgYmFza2V0JywnMTguMDAnLDJdXQ==\n"
編輯:
的問題是與to_json談話; 在php的輸出是;
json_encode(array(array("My basket", "18.00", 2)))
>> [["My basket","18.00",2]]
在紅寶石中;
([["My basket", "18.00", 2]]).to_json
>> "[[\"My basket\",\"18.00\",2]]"
ruby添加反斜槓,這就是爲什麼我添加gsub刪除反斜槓。
'json_econde()'和'。 to_json'產生相同的字符串輸出?我不熟悉ruby,但它不應該是'.to_json.gsub!('?它看起來像括號太多了嗎? – MonkeyZeus
輸出的差異是因爲你的ruby使用單引號而php使用雙引號,這些是解碼:PHP:'[[「My basket」,「18.00」,2]],' RUBY:'[['My basket','18.00',2]]' – Neat
那麼我怎樣才能用單引號替換雙引號? –