そうだ、教祖になろう。出エジプト記 第3章3節 Lambdaでサーバサイドを実装できない
Can you speak Japanese?
さあ、それでは楽しい楽しいコーディングの時間…
のはずだったのですが、問題が発生してしましました。
API Gatewayのレスポンスが文字化けしてしまいます。
というか、日本語部分がUnicodeエンコードされています。
しかし、Cloud9のAPI Gateway(local)やAPI Gatewayのテストではエンコードされず表示されます。
これはCloud9やAPI Gatewayがうまいことデコードしてくれていそうです。
ブラウザにも同じようにデコードを指示したいものです。
「API Gateway 文字コード」で調べるに、API Gatewayのレスポンスヘッダにcharset=utf-8
を埋め込めば解決する気もするのですが、
どうも、API Gatewayの画面仕様が変わっているらしく、もくは私の設定がおかしいらしく、マッピングテンプレートの指定項目が見当たりません。
無理やりソースでレスポンスヘッダに以下を指定してみましたが、状況変わらずです。
'headers': { 'Access-Control-Allow-Origin': '*', 'Content-type': 'application/json; charset=UTF-8' },
Ты говоришь по-японски?
ロシア語で悩むほど困っていたのですが、原因は単純でした。
こちらのサイトに掲載されている通り、
json.dump()
関数によって日本語文字列がUnicodeエンコードされていましたので、
このように、第2引数に"ensure_ascii"を”False”を指定してやると、
Ура!!!
思わぬところで教祖のへっぽこぶりが露呈してしまいましたが、次こそはスーパープログラミングタイムをお届けしたいと思います。