全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:5289
推到 Plurk!
推到 Facebook!

Delphi 6 如何產生 URLEncode的編碼

答題得分者是:小傑克
northpenguin
一般會員


發表:4
回覆:5
積分:1
註冊:2003-10-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-02-26 00:46:56 IP:61.64.xxx.xxx 訂閱
如標題
我要將"測試"這兩個中文字轉成"測試" 這是用.Net (System.Web.HttpUtility.Encode)
而不是"´ú¸Õ"這好像只是轉成UTF-8
請大大們幫小弟一下吧
另外 TIdURI.URLEncode我是真的不會用
uses
IdURI;
...
AURIStr:= TIDURI.URLEncode( '測試'); 編譯時期就出現錯誤
錯誤訊息:[Error] MainFormV2.pas(512): Undeclared identifier: 'TIdURL'
若是用以下的方式也是會出現錯誤
AURIStr:= URLEncode( '測試');
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-02-26 15:07:45 IP:59.112.xxx.xxx 訂閱
procedure TForm1.Button1Click(Sender: TObject);
function PathEncode(const ASrc: string): string;
const
UnsafeChars = ['*', '#', '%', '<', '>', ' ', ' ']; {do not localize}
var
i: Integer;
begin
Result := ''; {Do not Localize}
for i := 1 to Length(ASrc) do begin
if (ASrc[i] in UnsafeChars) or (ASrc[i] >= #$80) or (ASrc[1] < #32) then begin
Result := Result '%' IntToHex(Ord(ASrc[i]), 2); {do not localize}
end else begin
Result := Result ASrc[i];
end;
end;
end;
begin
Caption := PathEncode(AnsiToUtf8('測試'));
end;

這樣就可以得到你要的"測試"
function PathEncode 我是從TIdURI 裡面剪出來的 , 你用 URL.URLEncode('測試') 會錯誤 是因為你傳入的資料沒有包含" http:// "
詳細內容你可以追蹤到unit IdURI 去看
------
額有朝天骨,眼中有靈光
編輯記錄
小傑克 重新編輯於 2009-02-26 15:53:01, 註解 無‧
northpenguin
一般會員


發表:4
回覆:5
積分:1
註冊:2003-10-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-02-26 16:27:28 IP:61.64.xxx.xxx 訂閱
謝謝  我馬上來試試看  太感激了
老大仔
尊榮會員


發表:78
回覆:837
積分:1088
註冊:2006-07-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-02-27 00:09:30 IP:59.114.xxx.xxx 未訂閱
其實~版上有幾篇文章已經有問過類似問題了
可以找看看唄~

還有~您好像已經重覆發文了XD
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-02-27 09:34:52 IP:118.169.xxx.xxx 訂閱
已將重複的那一篇刪除
系統時間:2024-07-30 17:43:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!