(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【GoogleAPI】curlで日本語URLを入力すると結果が文字化けするエラーの解消法

スポンサーリンク

事象

以下のような日本語URLを利用するも

# curl -L "https://script.google.com/macros/s/xx/exec?text='こんにちは'&source=ja&target=en"

結果が文字化けして返ってくる。

{"code":200,"text":"'����������������'"}
環境情報
  • curl 7.52.1 (x86_64-pc-linux-gnu)

原因/解決策

CURLコマンドで送付するテキストが正しくエンコードされていない。
日本語URLのエンコードに関する補足は以下参照。

よって「こんにちは」を以下にエンコードすることで

%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF

所望する結果が返ってくる。

# curl -L "https://script.google.com/macros/s/xx/exec?text=%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF&source=ja&target=en"
{"code":200,"text":"Hello"}

以下、補足です。

補足

Google Apps Scriptを利用したウェブアプリを作成する際、コマンドから出力確認をしようとするとタイトルのエラーになりました。

ちなみにPOSTした結果が日本語の場合は特に対応せずとも文字化けせずに画面に表示されました。

# curl -L "https://script.google.com/macros/s/xx/exec?text=hello&source=en&target=ja"
{"code":200,"text":"こんにちは"}

以上、ご参考になれば幸いです。