这段代码主要用于解决通过 HTTP 请求获取的数据出现乱码的问题。它提供了两种方法来正确解码从服务器返回的乱码内容。
; ahkhttp端不设置 Server.AddHeader(res, "Content-type", "text/plain; charset=utf-8") ; 返回乱码时,可用这个函数修正乱码内容 str := "123ä½ å¥½" MsgBox % RtnBuff(str) ; 应返回 "123你好" 【网站对乱码支持有限】 Return RtnBuff(str) { Local VarSetCapacity( Tempstr, StrPut(str, "CP28591") * 2 ) , StrPut(str, &Tempstr, "CP28591") return StrGet(&Tempstr, "UTF-8") } ; 方法二 URL := "http://127.0.0.1:59506/regguest" whr := ComObjCreate("WinHttp.WinHttpRequest.5.1") whr.Open("GET", URL, true) ; whr.SetRequestHeader("Accept-Encoding", "gb2312") whr.Send() whr.WaitForResponse() ; MsgBox % whr.ResponseText ; 处理返回乱码 Stream := ComObjCreate("ADODB.Stream") Stream.Type := 1 Stream.Open() Stream.Write(whr.ResponseBody) Stream.Position := 0 Stream.Type := 2 Stream.Charset := "UTF-8" ; 或者其它编码 gb2312 MsgBox % """" 请求结果 := Stream.ReadText() """" Return
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。
评论(0)