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

Indy10 IdHTTP對非英文語的處理方式(泛中文處理)

 
GrandRURU
站務副站長


發表:234
回覆:1651
積分:1742
註冊:2005-06-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2012-09-25 12:17:07 IP:59.120.xxx.xxx 訂閱

Indy10 IdHTTP對非英文語的處理方式(泛中文處理)

這陣子想從網路上下載一些文件,URL大致上像下面這句:

「sUrl := http://www.DelphiCpp.com/我愛Delphi.txt」

使用 IdHTTP.Get(sUrl, ms) 方法卻怎麼也抓不到,可是也沒有Exception…

李組長眉頭一皺,發現案情並不單純。

於是請了Google大神拜了一下,也發現不少災情。

请问Delphi7怎么解决Indy发送中文字符的问题
Thread: IdHTTP and æøå ??

發現共通點都是靠「TIdTextEncoding」來解決問題
所以原先的作法就修改成這樣:

IdHttp.IOHandler.DefStringEncoding := TIdTextEncoding.ANSI;
IdHttp.Get(sUrl, msNewFile);

然後呢~

就完成啦!

才怪!

根本就不行!

執行到IdHttp.IOHandler.DefStringEncoding := TIdTextEncoding.ANSI;這行就出錯了。

原因在 IdHttp.IOHandler = NULL

李組長眉頭要皺到爆炸啦!

又參閱了下面文章

Converting Delphi 2007 Indy 10.2.3 to Delphi 2009 Indy 10.5.5
D2009 IdhTTp inavlid code page

既然要指定,就給它一個吧,於是就產生下一段這樣的內容:

if IdHTTP.IOHandler = nil then
IdHTTP.IOHandler := TIdIOHandler.MakeDefaultIOHandler(IdHTTP);
IdHttp.IOHandler.DefStringEncoding := TIdTextEncoding.ANSI;
IdHttp.Get(sUrl, msNewFile);

呼呼…試到這邊總算是可以成功了

至於為什麼不是使用
TIdTextEncoding.ASCII
TIdTextEncoding.UTF8
這兩種方法

在這邊的網站有提到
URL 含中文路徑名稱的終極解法

應該是與Web Server的調整有關,所以我試到 TIdTextEncoding.ANSI 就成功了
其它的,還希望有試過的人回應啦!
ANDY8C
資深會員


發表:114
回覆:582
積分:299
註冊:2006-10-29

發送簡訊給我
#2 引用回覆 回覆 發表時間:2012-09-25 18:31:27 IP:210.66.xxx.xxx 未訂閱
這篇真是 太好了
贊 1

說實在的 在 DELPHI 的文件中

WIDE , ANSI , UTF8 ,UTF16....等
真的很難搞懂.....

我們常說 UNICODE 指的是 ???

有高手可以簡單的說一下嗎 ?



------
---------------------------------------
偶爾才來 KTOP ,交流條碼問題,在 FB [條碼標籤達人] 社團留言,感恩.
leveon
資深會員


發表:29
回覆:386
積分:303
註冊:2012-02-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2012-09-25 19:46:50 IP:111.240.xxx.xxx 訂閱
歷史演進囉 這一篇 淺顯易懂 請參閱

http://www.csie.ntu.edu.tw/~p92005/Joel/Unicode.html


===================引 用 ANDY8C 文 章===================
這篇真是 太好了
贊 1

說實在的 在 DELPHI 的文件中

WIDE , ANSI , UTF8 ,UTF16....等
真的很難搞懂.....

我們常說 UNICODE 指的是 ???

有高手可以簡單的說一下嗎 ?



GrandRURU
站務副站長


發表:234
回覆:1651
積分:1742
註冊:2005-06-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2012-09-26 08:37:41 IP:59.120.xxx.xxx 訂閱
讚的啦!
謝謝leveon大的分享!

===================引 用 leveon 文 章===================
歷史演進囉 這一篇 淺顯易懂 請參閱

http://www.csie.ntu.edu.tw/~p92005/Joel/Unicode.html

ANDY8C
資深會員


發表:114
回覆:582
積分:299
註冊:2006-10-29

發送簡訊給我
#5 引用回覆 回覆 發表時間:2012-09-26 12:41:36 IP:210.66.xxx.xxx 未訂閱
讚 + 1
===================引 用 leveon 文 章===================
歷史演進囉 這一篇 淺顯易懂 請參閱

http://www.csie.ntu.edu.tw/~p92005/Joel/Unicode.html



------
---------------------------------------
偶爾才來 KTOP ,交流條碼問題,在 FB [條碼標籤達人] 社團留言,感恩.
系統時間:2017-10-23 8:57:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!