私はBase64を使って自分のPHPコードをRubyに変換しようとしていますが、同じ結果は得られません。php base64とrubyは同じ結果ではありません
PHPコード。
<?php
$user_basket = base64_encode(json_encode(array(array("My basket", "18.00", 2))));
echo $user_basket;
?>
出力します。
W1siTXkgYmFza2V0IiwiMTguMDAiLDJdXQ==
次に同じことをルビーで試してみます。
user_basket = Base64.encode64((([["My basket", "18.00", 2]]).to_json).gsub!(/\"/, '\''))
to_json
がバックスラッシュが追加されますので、私はGSUBを置きます。
この出力は、
"W1snTXkgYmFza2V0JywnMTguMDAnLDJdXQ==\n"
EDIT:
問題が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]]"
ルビーはバックスラッシュを追加しているため、バックスラッシュを削除するためにgsubを追加しています。
'json_econde()'と '。 to_json'は同じ文字列出力を生成しますか?私はルビに慣れていませんが、 '.to_json.gsub '('?)は括弧が多すぎるように見えますか? – MonkeyZeus
出力の違いは、あなたのルビーが一重引用符を使用し、phpが二重引用符を使用するためです。 '' [{"My basket"、 "18.00"、2]] '、 ルビー:' [[マイバスケット]、 '18.00'、2]] ' – Neat
どうすれば一重引用符を –