Delphi TIdBytes を String へ変換

Delphi Indy の TIdBytes を String へ文字コードを指定して変換

IdGlobal の BytesToString 関数を使うと
S := BytesToString(Buffer, enDefault);
なんですが、デフォルトエンコード(Shift-jis)で処理してくれません(utf8等では可能かも)
また、警告も出たりします

TIdBytes の実態は TIdBytes = array of Byte; なので、単純に関数を作成して
function IdByteToString(Buffer: TIdBytes; AEncoding: TEncoding): string;
begin
    Result := AEncoding.GetString(TBytes(Buffer));
end;

S := IdByteToString(Buffer, TEncoding.Default);
のような感じで利用

コメント