标签:Bin regEx utf conv gbk VBS adoStream instru msg
通过zabbix监控windows,由于zabbix server运行在linux下,采用utf-8内码处理,而windows则以gbk(gb2312)做内码,所以当有中文内容上报到zabbix时,会造成编码错误
通过实践,经以下代码处理后,输出基本上符合需求,需不无完全保证无乱码,但已经完全可以接受
msg="需要转码的内容" instru_msg="" for i=1 to len(msg) Bin=mid(msg,i,1) If RegExpTest("[\u4e00-\u9fa5]", Bin) Then if showdebug then wscript.echo Bin & "--HZ" end if instru_msg=instru_msg & conv(Bin) else instru_msg=instru_msg & Bin end if next Wscript.Echo instru_msg Function conv(strIn) Set adoStream = CreateObject("ADODB.Stream") adoStream.Charset = "utf-8" adoStream.Type = 2 'adTypeText adoStream.Open adoStream.WriteText strIn adoStream.Position = 0 adoStream.Charset = "_autodetect_all" adoStream.Type = 2 'adTypeBinary conv = adoStream.ReadText() adoStream.Close ' conv = Mid(conv, 1) End Function Function RegExpTest(patrn, strng) Dim regEx, retVal ' 建立变量。 Set regEx = New RegExp ' 建立正则表达式。 regEx.Pattern = patrn ' 设置模式。 regEx.IgnoreCase = False ' 设置是否区分大小写。 retVal = regEx.Test(strng) ' 执行搜索测试。 If retVal Then RegExpTest = True Else RegExpTest = False End If End Function
标签:Bin,regEx,utf,conv,gbk,VBS,adoStream,instru,msg 来源: https://www.cnblogs.com/d9394/p/14250209.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。