?? vb的cgi程序解碼時不認漢字的情況.txt
字號:
一 旦 你 在 VB中 遇 到 字 符 串 操 作 對 英 文 正 常 而 對 中 文 異 常 , 你 就 應 該 想 到 又 是 VB討 厭 的 字 符 串 處 理 方 式 在 搗 鬼 。 你 的 程 序 出 問 題 主 要 是 因 為 在 解 %編 碼 的 那 個 Do...Loop循 環 。 由 于 你 的 操 作 系 統 是 中 文 的 , 所 以 Chr函 數 是 處 在 雙 字 節 工 作 方 式 下 , 也 就 是 說 Chr("&HE2")是 非 法 的 , 而 Chr("&HE2D7")是 合 法 的 , 它 代 表 你 的 姓 “ 庾 ” 。 將 這 個 循 環 修 改 如 下 :
Do
pos = InStr(pos + 1, sEncoded, "%")
If pos = 0 Then Exit Do
If Mid$(sEncoded, pos + 1, 1) > "A" Then
Mid$(sEncoded, pos) = Chr$("&H" & (Mid$( _
sEncoded, pos + 1, 2)))
sEncoded = Left$(sEncoded, pos) _
& Mid$(sEncoded, pos + 3)
Else
Mid$(sEncoded, pos) = Chr$("&H" & (Mid$(sEncoded _
, pos + 1, 2) + Mid$(sEncoded, pos + 4, 2)))
sEncoded = Left$(sEncoded, pos) _
& Mid$(sEncoded, pos + 6)
End If
Loop
現 在 一 切 該 正 常 了 。
<END>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -