はじめに
OutSystemsでConsume REST APIを使用してデータを取得した際、レスポンスが文字化けする現象が発生しました。
本記事では、その原因と具体的な対処方法について解説します。
同様の問題に直面された方の参考になれば幸いです。
動作環境
- OutSystems(バージョン 11)
問題
Consume REST APIから取得したレスポンスが文字化けした状態で出力される問題が発生しました。
例えば、ほげほげ
という日本語がãã
のように表示されます。
原因
OutSystemsでは、Consume REST APIによるレスポンスのデフォルト文字コードがISO-8859-1
として扱われます。そのため、UTF-8
でエンコードされたレスポンスをそのまま表示しようとすると、文字コードの不一致により文字化けが発生します。
ISO-8859-1
は西欧言語に特化した文字セットであり、日本語などのマルチバイト文字には対応していません。
対処
文字化けを防ぐためには、レスポンスのエンコーディングを正しく処理する必要があります。具体的には、Content-Type
ヘッダーにapplication/json; charset=UTF-8
と設定します。
OutSystemsでは、Consume REST APIのOnAfterResponse
イベント内で、BinaryDataToText
アクションを使用して、ResponseBinary
をUTF-8
に変換した後、その結果をCustomizedResponse.ResponseText
に設定することで、文字化けを回避できます。
おわりに
APIを利用する際には、レスポンスの文字エンコーディングにも注意を払う必要があります。特にOutSystemsのようにデフォルトで特定の文字コード(ISO-8859-1)が想定されている場合、文字化けが発生しやすくなります。
外部APIと連携する場面では、レスポンスの内容とヘッダー情報を確認し、想定通りの文字コードで処理されているか確認することが重要です。
本記事が、OutSystemsでREST APIを使う際のトラブル解決に役立つことを願っています。
参考文献