前提・実現したいこと
curl -X POST http://hoge.com -d "name=あいうえお&key=test_key&option=thisisoption"
Linux上端末からこのコマンド1つで登録が成功するAPIがあります。
これを
AAA = "あいうえお" BBB = "test_key" CCC = "thisisoption" `curl -X POST http://hoge.com -d "name=#{AAA}&key=#{BBB}&option=#{CCC}"`
このようにrubyScript上から変数を用いて実装させたい(後々変更が効くように、ベタ書きはしないように)のですが、これを実行するとAPIが失敗します。何か間違ってるのかなと思い、logger.debug(中身は上記curlコマンド)を実行してみると、きちんと想定されたとおりの結果が画面上に出力されます。
おかしいと思いながらも、logger.debug()の結果をコピーして、ふたたび同じLinux端末上から貼り付けて実行させようとしたら
curl -X POST http:/hoge.com -d "name=繝・せ繝医□繧・&key=tesutodayoa&option=thisisoption"
このように日本語の部分が中国語のような漢字に文字化けしておりました。
おそらく原因はこれ(見た目的には問題ないが、中身がなにか違う)だと思うのですが、解決方法が検討つきません。
ご存知のかたいらっしゃいましたらご教示いただけませんでしょうか?
試したこと
encode('utf-8')
encode('cp932')
補足情報(FW/ツールのバージョンなど)
Ubuntu18.04
Ruby on Rails 6
ruby 2.6.5
回答1件
あなたの回答
tips
プレビュー