[BCB] HTTP Encode
AnsiString __fastcall HTTPEncodeUTF8(const AnsiString AStr)
{
WideString WStr=AStr;
UTF8String UStr=UTF8Encode(AStr);
AnsiString Result="";
for (int i=1;i<=UStr.Length();i++) {
byte Ch=UStr[i];
if ((Ch>='A' && Ch<='Z') ||
(Ch>='a' && Ch<='z') ||
(Ch=='*') ||
(Ch=='@') ||
(Ch=='.') ||
(Ch=='_') ||
(Ch=='-')) {
Result=Result+(char)Ch;
} else if (Ch==' ') {
Result=Result+"+";
} else {
Result=Result+"%"+AnsiString().sprintf("%.2X",Ch);
}
}
return Result;
}
| 固定リンク
