| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- unit IdHeaderCoderPlain deprecated 'use IIdTextEncoding';
- interface
- {$i IdCompilerDefines.inc}
- uses
- IdGlobal, IdHeaderCoderBase;
- type
- TIdHeaderCoderPlain = class(TIdHeaderCoder)
- public
- class function Decode(const ACharSet: string; const AData: TIdBytes): String; override;
- class function Encode(const ACharSet, AData: String): TIdBytes; override;
- class function CanHandle(const ACharSet: String): Boolean; override;
- end;
- // RLebeau 4/17/10: this forces C++Builder to link to this unit so
- // RegisterHeaderCoder can be called correctly at program startup...
- {$IFDEF HAS_DIRECTIVE_HPPEMIT_LINKUNIT}
- {$HPPEMIT LINKUNIT}
- {$ELSE}
- {$HPPEMIT '#pragma link "IdHeaderCoderPlain"'}
- {$ENDIF}
- implementation
- uses
- SysUtils;
- class function TIdHeaderCoderPlain.Decode(const ACharSet: string; const AData: TIdBytes): String;
- begin
- Result := BytesToStringRaw(AData);
- end;
- class function TIdHeaderCoderPlain.Encode(const ACharSet, AData: String): TIdBytes;
- begin
- Result := ToBytes(AData, IndyTextEncoding_8Bit);
- end;
- class function TIdHeaderCoderPlain.CanHandle(const ACharSet: String): Boolean;
- begin
- Result := TextStartsWith(ACharSet, 'ISO'); {do not localize}
- if Result then begin
- // 'ISO-2022-JP' is handled by TIdHeaderCoder2022JP
- Result := not TextIsSame(ACharSet, 'ISO-2022-JP'); {do not localize}
- Exit;
- end;
- if not Result then begin
- Result := TextStartsWith(ACharSet, 'WINDOWS'); {do not localize}
- if not Result then begin
- Result := TextStartsWith(ACharSet, 'KOI8'); {do not localize}
- if not Result then begin
- Result := TextStartsWith(ACharSet, 'GB2312'); {do not localize}
- if not Result then begin
- Result := TextIsSame(ACharSet, 'US-ASCII');
- end;
- end;
- end;
- end;
- end;
- initialization
- RegisterHeaderCoder(TIdHeaderCoderPlain);
- finalization
- UnregisterHeaderCoder(TIdHeaderCoderPlain);
- end.
|