请教一下关于POST提交中含有中文的问题
本帖最后由 jieelin 于 2009-6-27 09:25 编辑$oHTTP.Send("formhash=8e4e541c&subject=&message=我的浏览器好像出问题了,,老是发乱码!汗!")
用上面的程序提交上去的是乱码,用HTTPWATCH获取提交的数据是这样子的:
formhash=8e4e541c&subject=&message=%CD%DB%2C%B4%F3%BC%D2%B6%BC%D5%E2%C3%B4%D4%E7%B0%A1%2C%CE%D2%BB%B9%D2%D4%CE%AA%CE%D2%C4%DC%D5%BC%C9%CF%C9%B3%B7%A2%C4%D8%7E+%BA%C7%BA%C7.+%3Ayct028%3A+%3Ayct028%3A+
这两个之前应该是编码不一样.. 请教一下高手这里我该如何把我要提交的中文转换成下面这样子? 谢谢指教. 1# jieelin
刚在BAIDU上搜了一下,竟然找到了解决方法. 呵呵. 用这个函数转换一下就可以了.
Func _UnicodeURLEncode($UnicodeURL) ;==>_UnicodeURLEncode
Local $UnicodeBinaryLength,$UnicodeBinary,$UnicodeBinary2
$UnicodeBinary = StringToBinary ($UnicodeURL,4)
$UnicodeBinary2 = StringReplace($UnicodeBinary, '0x', '', 1)
$UnicodeBinaryLength = StringLen($UnicodeBinary2)
Local $EncodedString,$UnicodeBinaryChar,$EncodedString
For $i = 1 To $UnicodeBinaryLength Step 2
$UnicodeBinaryChar = StringMid($UnicodeBinary2, $i, 2)
If StringInStr("$-_.+!*'(),;/?:@=&abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890", BinaryToString ('0x' & $UnicodeBinaryChar,4)) Then
$EncodedString &= BinaryToString ('0x' & $UnicodeBinaryChar)
Else
$EncodedString &= '%' & $UnicodeBinaryChar
EndIf
Next
Return $EncodedString
EndFunc {:face (356):}~~~~ {:face (316):} 正需要 谢谢
页:
[1]