[FUNC]ahk利用JScript编码函数

来源:互联网 发布:js 正则表达式写法 编辑:程序博客网 时间:2024/05/20 07:16
;sunwind 整理;2013-5-26 13:17:31;~ 编码函数,它输出符号的utf-8形式MsgBox % encode2UTF8("测试")encode2UTF8(Uri){    oSC := ComObjCreate("ScriptControl")    oSC.Language := "JScript"    Script := "var Encoded = encodeURI(""" . Uri . """)"    oSC.ExecuteStatement(Script)    Return, oSC.Eval("Encoded")}



;~ http://www.autohotkey.com/board/topic/54431-scite4autohotkey-v300101-updated-nov-30-2012/page-44?hl=winhttp.winhttprequest#entry536165SetTitleMatchMode, 2WinGet, HWND, ID, SciTE4AutoHotkeyGui, Add, Edit, w100 vDesc, Pasted by SciTEGui, Add, Edit, w100 vAuthor, GeekDudeGui, Add, Button, w100, PasteGui, +Owner%HWnd% +ToolWindowGui, Show,, PastereturnButtonpaste:Gui, SubmitGui, DestroyGui, 1:Submit, NoHideoSciTE := ComObjActive("SciTE4AHK.Application")AhkBin(oSciTE.Document, Author, Desc, 1)ExitAppAhkBin(Txt, Author="GeekDude", Desc="Pasted by SciTE", Public=0){URL := "http://www.autohotkey.net/paste/"POST:= "MAX_FILE_SIZE=262144".  "&jscheck=".  "&text=" . UriEncode(Txt).  "&author=" . Author.  "&description=" . UriEncode(Desc).  "&irc=" . (Public ? 100 : 0).  "&submit=Paste"Pbin := ComObjCreate("WinHttp.WinHttpRequest.5.1")Pbin.Open("POST", URL)Pbin.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")Pbin.Send(POST)RegExMatch(Pbin.ResponseText, "<title>Paste #(.*?)</title>", pb_url)File := FileOpen("Pastes.txt", "rw")Txt .= File.Read()File.pos := 0File.Write(A_Now . "|" . URL . pb_url1 . "|" . Desc . "`r`n" . Txt)File.Close()if publicreturn URL . pb_url1return}UriEncode(Uri){oSC := ComObjCreate("ScriptControl")oSC.Language := "JScript"Script := "var Encoded = encodeURIComponent(""" . FixJS(Uri) . """)"oSC.ExecuteStatement(Script)return oSC.Eval("Encoded")}UriDecode(Uri){oSC := ComObjCreate("ScriptControl")oSC.Language := "JScript"Script := "var Decoded = decodeURIComponent(""" . Uri . """)"oSC.ExecuteStatement(Script)return oSC.Eval("Decoded")}FixJS(JS){StringReplace, JS, JS,  \, \\, All ; BackslashStringReplace, JS, JS, `b, \b, All ; BackspaceStringReplace, JS, JS, `f, \f, All ; Form feedStringReplace, JS, JS, `n, \n, All ; New lineStringReplace, JS, JS, `r, \r, All ; Carriage returnStringReplace, JS, JS, `t, \t, All ; TabStringReplace, JS, JS, `v, \v, All ; Vertical tabStringReplace, JS, JS,  ', \', All ; Single quoteStringReplace, JS, JS, `", \`", All ; Double quotereturn JS}