バックエンドからのレスポンスが文字化けする問題

Document created by Ryoji_Kadota Employee on Sep 5, 2016
Version 1Show Document
  • View in full screen mode

文書番号: JTEC002534

製品名: CA API Gateway

バージョン: ALL

OS: ALL

 

◆概要

バックエンドからのレスポンスをAPI Gatewayを経由して取り出した場合(変数での値の取得や、監査ログの出力等)、日本語(マルチバイト文字)の部分で文字化けが発生する場合があります。

 

原因

API Gatewayではバックエンドから受け取ったHTTPヘッダーの文字コード(Content-Typecharset)でレスポンスを展開します。このため、バックエンドのWEBサーバで設定されているHTTPヘッダーの文字コード(Content-Typecharset)と対象のWebページ内で使用している文字コードが異なると、文字化けが発生します。

 

* 多くのWebサーバでは、デフォルトのcharsetUTF-8が設定されているため、UTF-8は文字化けしない場合が多く見受けられます。

 

対応方法

バックエンドのWebサーバの設定を変更して、バックエンドのWebサーバが複数の文字コードを扱えるようにすることで、文字化けを防ぐことができます。バックエンドのWebサーバのcharsetの設定をご確認ください。(Webサーバで対象のフォルダ毎に文字コードを設定する必要があります。)

 

例:Apache WebサーバでSJISを設定する場合:

  1. .../htdocs/下に任意のフォルダーを作成します。 (.../htdocs/sjis
  2. 01.で作成したフォルダ(.../htdocs/sjis)内に.htaccessファイルを作成します。
  3. .htaccessファイルに以下を追加します。

     AddCharset SJIS .html

  1. .../conf/httpd.comfファイルの"AllowOverride"を編集します。

    編集前:   AllowOverride none

    編集後:   AllowOverride all

  1. 設定変更後、Apacheを再起動します。
  2. sjis設定のHTLMを対象フォルダ(.../htdocs/sjis)に配置します。

 

 

IISの場合は各フォルダでMIMEの種類を設定します。

ファイル名の拡張子:  .html

MIMEの種類       :   text/html; charset=sjis

 

API Gatewayの設定ではなく、Webサーバ側での設定が必要になります。

詳細に関しましては、各Webサーバでご確認ください。

 

Attachments

    Outcomes