📄 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 + -