發表文章

目前顯示的是有「Delphi」標籤的文章

[C++Builder][Delphi]讓IdHTTP可以正常Post出Big5漢字的參數

圖片
因為寫比賽作品需要,要對學校系統做POST封包, 設定指定email文字內容,像底下這樣 不過到了學校系統一看發現... 中文字的部分通通被設置為了問號...Otz. 於是用封包工具攔截一下看出了什麼狀況 原來Indy控件組內的IdHTTP在做POST的時候對漢字解析上有問題... 會自動把漢字變成了問號(找不到對應字詞做發送) 所以能知道的事情是,我們在POST前先做URL Encode, 把原本的文字轉%XX%XX的形式那麼IdHTTP做發送就不會有無法解析中文字的問題. 翻了一下,學校的asp網站採用的編碼為Big5. 所以我們得設計一個URL Encode去把當前UncodeString轉Big5編碼再做URL Encode. 做法上因為我對URL Encode整個機制處理上沒那麼清楚, 所以問了一下C++Builder前輩 蕭沖 大大 Big5編碼URL Encode的Delphi Code寫法在這 (原版) 我重新用C++Builder寫一份 String nURLEncode(String S,bool InQueryString){ String Ret = ""; TByteDynArray bys = TEncoding::GetEncoding(950)->GetBytes(S); //採用Big5(950)設置轉換用途編碼 for (int i = 0; i = 0x41)&&(bys[i] = 0x61)&&(bys[i] = 0x30)&&(bys[i] 針對可能有中文字的參數做了URL Encode ok,發送出去之後,攔截一下封包可以看到很乖的用URL Encode之後的資料送出去 然後回學校網站看一下 Ok,學校網站已經可以正常吃到漢字囉!