Indy10 IdHTTP對非英文語的處理方式(泛中文處理) |
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
Indy10 IdHTTP對非英文語的處理方式(泛中文處理)「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 發送簡訊給我 |
|
leveon
資深會員 發表:30 回覆:389 積分:303 註冊:2012-02-12 發送簡訊給我 |
歷史演進囉 這一篇 淺顯易懂 請參閱
http://www.csie.ntu.edu.tw/~p92005/Joel/Unicode.html ===================引 用 ANDY8C 文 章=================== 這篇真是 太好了 贊 1 說實在的 在 DELPHI 的文件中 WIDE , ANSI , UTF8 ,UTF16....等 真的很難搞懂..... 我們常說 UNICODE 指的是 ??? 有高手可以簡單的說一下嗎 ? |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
讚的啦!
謝謝leveon大的分享! ===================引 用 leveon 文 章=================== 歷史演進囉 這一篇 淺顯易懂 請參閱 http://www.csie.ntu.edu.tw/~p92005/Joel/Unicode.html |
ANDY8C
資深會員 發表:114 回覆:582 積分:299 註冊:2006-10-29 發送簡訊給我 |
讚 + 1
===================引 用 leveon 文 章=================== 歷史演進囉 這一篇 淺顯易懂 請參閱 http://www.csie.ntu.edu.tw/~p92005/Joel/Unicode.html
------
--------------------------------------- 偶爾才來 KTOP ,交流條碼問題,在 FB [條碼標籤達人] 社團留言,感恩. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |