VFPCGI Day12
出自VFP Wiki
VFPCGI Day12
的原始碼
跳轉到:
導航
,
搜尋
根據以下的原因,您並無權限去做編輯這個頁面:
你所請求執行的操作被禁止。
你可以檢視並複製本頁面的原始碼。
[[Category:VFPCGI]] =====VFPCGI的第十二天===== 既然已經有了 UrlDecode 這個函數,我們再回頭來看 cgi06。 首先我們修改 Request 類別的 ParseData 方法 <pre> HIDDEN PROCEDURE ParseData LPARAMETERS cInput as String , oCollection as Collection LOCAL i, nStart, nPos, nEqualPos LOCAL lcStr, lcKey, lcValue * parse it. i = 1 nStart = 1 nPos=AT( "&", cInput, i ) IF nPos == 0 THEN nPos = LEN( cInput ) ENDIF DO WHILE nPos!=0 lcStr = SUBSTR( cInput, nStart, nPos-nStart ) nEqualPos = AT( "=", lcStr ) IF nEqualPos!=0 THEN lcKey = SUBSTR( lcStr, 1, nEqualPos-1 ) lcValue = UrlDecode( SUBSTR( lcStr, nEqualPos+1 ) ) oCollection.Add( lcValue, lcKey ) ENDIF i=i+1 nStart = nPos + 1 nPos=AT( "&", cInput, i ) ENDDO IF nStart < LEN(cInput) THEN nPos = LEN( cInput ) lcStr = SUBSTR( cInput, nStart ) nEqualPos = AT( "=", lcStr ) IF nEqualPos!=0 THEN lcKey = SUBSTR( lcStr, 1, nEqualPos-1 ) lcValue = UrlDecode( SUBSTR( lcStr, nEqualPos+1 ) ) oCollection.Add( lcValue, lcKey ) ENDIF ENDIF ENDPROC </pre> 基本上只修改兩行,用 UrlDecode 來處理 lcValue <pre> lcValue = UrlDecode( SUBSTR( lcStr, nEqualPos+1 ) ) </pre> 接著將 cgi06 最上面的 <pre>set procedure to cgilib</pre> 改為 <pre>set procedure to cgilib, httputility</pre> 編譯以後再執行看看,相信就已經可以處理中文了。 但是,我們還沒講到 unicode 與網頁編碼問題的部份...冏... p.s. 之前有人問 Apache 的部份,我猜想可能是 Apache 設定裡面的 AddDefaultCharset 沒有註解掉的原因~ 如果沒有註解掉,Apache 都會假定網頁編碼是 utf-8。
返回到
VFPCGI Day12
。
檢視
頁面
討論
原始碼
歷史
個人工具
登入/建立新帳號 選單
導航
首頁
社群入口
現時事件
近期變動
隨機頁面
使用說明
搜尋
工具箱
鏈入頁面
相關頁面修訂記錄
所有特殊頁面