###現象
Ajax通信でJSONを送信を行いC++で作成したCGIで受信し文字列に保管するといった処理を行っています
ですが、Ajax側でコンソール上に表示すると文字化けしてしまいます
###該当のソースコード
int main()
{
// 環境変数[REQUEST_METHOD]に送信されたメソッド[GET/POST]が入ります。
std::string request_method = getenv("REQUEST_METHOD");
if (request_method != "POST")
{
cout << "REQUEST_METHOD : " << request_method << endl;
return 0;
}
// 送信されたサイズを取得します。 const char* lengthStr = getenv("CONTENT_LENGTH"); int length = atoi(lengthStr); // 送信されたデータを保存する文字列のメモリを確保します。 char* tmpBuf = new char[length + 1]; if (!tmpBuf) { cout << "Allocate is failed." << endl; return 0; } // 標準入力からPOSTされたデータを取得します。 if (fread(tmpBuf, 1, length, stdin) != length) { cout << "fread is failed." << endl; return 0; } tmpBuf[length] = '\0'; string result = tmpBuf; const char* answer = "Content-Type:text/html;charset=Shift-JIS\n\n"; cout << answer << "{\"" << length << "\":" << "\"test\"}"; return 0;
}
Ajaxでは文字コードの指定をしていません
Ajax通信で送信するデータ
{test_message:0,title:"テスト",message:""};
コンソール上に表示される出力結果
{"json%5Btest_message%5D=0&json%5Btitle%5D=%E7%B9%9D%EF%BF%BD%E3%81%9B%E7%B9%9D%EF%BF%BD&json%5Bmessage%5D=データ長 : 105":"test"}
###試したこと
課題に対してアプローチしたことを記載してください
UTF-8⇔SHIFT-JISにデコードしてみましたが結果は変わりませんでした
###補足情報(言語/FW/ツール等のバージョンなど)
開発環境 visual studio 2017
サーバー Apache 2.4.25
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。