以前こちらの掲示板でTEXT.TEXTの住所をGOOGLEMAPで表示させるという内容があり試したところ、BDS2006では、問題なく作動するのですが、DELPHI2009では、書式文字列'%%は、正しくないか引数と一致しません。とメッセージが出てまったくうまく作動しません。文字コードの違いかと思うのですが、どのように修正すればよいかが、分かりません。分かる方いらっしゃいましたら御回答お待ちしております。
//--------------------------------以下URLエンコードのコード
function UrlEncode(const AStr,AppendNoConvChars: String; Space2Plus: Boolean): String;
const
NoConversionChars = [
'A'..'Z','a'..'z',
'0'..'9',
'-','_','.','!','*','''','(',')']; // '@', '$',];
var
Sp, Rp: PChar;
NoConversion: set of Char;
i: Integer;
begin
NoConversion := NoConversionChars;
for i := 1 to Length(AppendNoConvChars) do
NoConversion := NoConversion + [AppendNoConvChars[i]];
SetLength(Result, Length(AStr) * 3);
Sp := PChar(AStr);
Rp := PChar(Result);
while Sp^ <> #0 do
begin
if Sp^ in NoConversion then
Rp^ := Sp^
else
if (Sp^ = ' ') and (Space2Plus) then
Rp^ := '+'
else
begin
FormatBuf(Rp^, 3, '%%%.2x', 6, [Ord(Sp^)]);
Inc(Rp,2);
end;
Inc(Rp);
Inc(Sp);
end;
SetLength(Result, Rp - PChar(Result));
end;
自己解決しました
ツイート | ![]() |