Delphi 2009 と TIdHttp の Post メソッドで sjis(デフォルトコードページ)を送信

Delphi 2009 から string 型が Unicodeへ移行したため、TIdHttp の Post メソッドで TStringList 等の文字列情報を送信しようとすると、旧2バイト系文字列で思ったような結果が得られない

  1. TIdHttp の HTTPOptions プロパティのデフォルトでオンになっている hoForceEncodeParams を外す
  2. uses に HttpApp を追加 して、送信する文字列を HTTPEncode(S) を使ってエンコードする

StringList['sendmsg'] = HTTPEncode(MsgStr);
IdHttp1.post(URL, StringList);

コメント