$ perl -MMIME::Base64 -e 'print encode_base64("syn_ack@163.com");'
c3luX2Fjay5jb20=
$ perl -MMIME::Base64 -e 'print decode_base64("c3luX2Fjay5jb20=");'
syn_ack.com
エンコード結果を元の文字列にデコードできません。なぜですか?
$ perl -MMIME::Base64 -e 'print encode_base64("syn_ack@163.com");'
c3luX2Fjay5jb20=
$ perl -MMIME::Base64 -e 'print decode_base64("c3luX2Fjay5jb20=");'
syn_ack.com
エンコード結果を元の文字列にデコードできません。なぜですか?
Perl で予期しない結果が表示された場合は、警告が有効になっていることを確認してください。
$ perl -w -MMIME::Base64 -e 'print encode_base64("syn_ack@163.com");' -e 行 1 の文字列で @163 の意図しない補間が行われる可能性があります。 c3luX2Fjay5jb20=
単一引用符 ( ) で囲まれた文字列内では補間は行われない''
ため、次のように実行できます。
perl -w -MMIME::Base64 -e 'print encode_base64('syn_ack@163.com');'
または、二重引用符 ( ""
) を残してエスケープします。@
perl -w -MMIME::Base64 -e 'print encode_base64("syn_ack\@163.com");'
どちらかが出力されます
c3luX2Fja0AxNjMuY29t
デコードすると
$ perl -w -MMIME::Base64 -e 'print decode_base64("c3luX2Fja0AxNjMuY29t");' syn_ack@163.com