コンソール形式CGIの文字化けを解消するには?
はじめまして、お世話になります。
以前、Delphi6で作成したコンソールアプリ形式のCGIプログラムを
Delphi10.2へ移植したところ、HTMLフォームからPOSTした全角文字が
文字化けしてしまい困っています。
解決する方法を教えていただけないでしょうか。
■開発環境
Delphi10.2
WindowsServer2016
Apache2.4
■テストソース(testcgi.dpr)
program testcgi;
{$APPTYPE CONSOLE}
uses
SysUtils;
{$E cgi}
var
C : AnsiChar;
i : integer;
data : AnsiString;
begin
//HTMLフォームから送信されたデータの取得
for i := 1 to StrToIntDef(GetEnvironmentVariable('CONTENT_LENGTH'), 0) do
begin
Read(C);
data := data + C;
end;
Writeln('Content-type: text/html');
Writeln('');
Writeln('<!DOCTYPE html>');
Writeln('<html>');
Writeln('<head>');
Writeln('<meta charset="Shift_JIS">');
Writeln('</head>');
Writeln('<body>');
Writeln('POST DATA : ' + data); //取得したフォームデータをそのまま表示
Writeln('</body>');
Writeln('</html>');
end.
■HTMLフォーム
<!DOCTYPE html>
<html>
<head>
<meta charset="Shift_JIS">
</head>
<body>
<form action="/cgi-bin/testcgi.cgi" method="post">
<input type="text" name="data" value="データ"><br />
<input name="submit" type="submit" value="submit">
</form>
</body>
</html>
■実行結果
入力文字:データ
→%83f%81%5B%83%5E(URLデコード→%83fータ)
入力文字:フォーム
→%83t%83H%81%5B%83%80(URLデコード→%83t%83Hーム)
すいません。自己解決いたしました。
URLデコードが正しく動作していませんでした。