jieelin 发表于 2009-6-27 09:20:03

请教一下关于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+

这两个之前应该是编码不一样.. 请教一下高手这里我该如何把我要提交的中文转换成下面这样子? 谢谢指教.

jieelin 发表于 2009-6-27 09:24:38

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

yorker0503 发表于 2011-4-30 17:13:11

{:face (356):}~~~~

guoguo188 发表于 2011-10-14 00:05:17

{:face (316):} 正需要 谢谢
页: [1]
查看完整版本: 请教一下关于POST提交中含有中文的问题