我希望使用 Delphi XE5 中的新 TRest 组件发送推文。我正在寻找一种方法来UTF8编码我的推文,其中包含IS0-8859-1字符。下面的代码可以工作,但涉及到代码页转换等。是否有更好的方式?有人知道吗?
procedure TTwitterApi.Send(Tweet: string);
begin
Reset;
// Encode as UTF8 within (UTF-16 Delphi) string
Tweet := EncodeAsUTF8(Tweet);
FRestRequest.Resource := '1.1/statuses/update.json';
FRestRequest.Method := rmPOST;
FRestRequest.Params.AddItem('status', Tweet, pkGETorPOST);
FRestRequest.Execute;
end;
function TTwitterApi.EncodeAsUTF8(UnicodeStr: string): string;
var
UTF8Str: AnsiString;
TempStr: RawByteString;
begin
TempStr := UTF8Encode(UnicodeStr);
SetLength(UTF8Str, Length(TempStr));
Move(TempStr[1], UTF8Str[1], Length(UTF8Str));
Result := UTF8Str;
end;