[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
正好翻出来一个有意思的点 utf8 bom…
  1. Option Explicit
  2. WScript.Echo base64utf8("5om55aSE55CG5LmL5a62", False) & vbCrLf & _
  3. base64utf8("批处理之家", True)
  4. '************************************************************************
  5. '字符串 Base64 编码、解码 (utf-8)
  6. '************************************************************************
  7. Function base64utf8(ByVal sText, ByVal bAsEncodeDecode)
  8. Dim oStream, oXML, oNode
  9. On Error Resume Next
  10. Set oStream = CreateObject("ADODB.Stream")
  11. Set oXML = CreateObject("Msxml2.DOMDocument.3.0")
  12. Set oNode = oXML.CreateElement("base64")
  13. oNode.DataType = "bin.base64"
  14. base64utf8 = ""
  15. If bAsEncodeDecode Then
  16. oStream.Type = 2 'adTypeText = 2
  17. oStream.Charset = "utf-8"
  18. oStream.Open
  19. oStream.WriteText sText
  20. oStream.Position = 0
  21. oStream.Type = 1 'adTypeBinary = 1
  22. oStream.Position = 0
  23. oNode.nodeTypedValue = oStream.Read
  24. If Err.Number = 0 Then
  25. base64utf8 = oNode.Text '移除 utf-8 文件的 BMO头 efbbbf。base64_decode('77u/')
  26. If Left(base64utf8, 4) = "77u/" Then base64utf8 = Mid(base64utf8,5)
  27. End If
  28. Else
  29. oStream.Type = 1 'adTypeBinary = 1
  30. oStream.Open
  31. oNode.Text = sText
  32. oStream.Write oNode.nodeTypedValue
  33. oStream.Position = 0
  34. oStream.Type = 2 'adTypeText = 2
  35. oStream.Charset = "utf-8"
  36. If Err.Number = 0 Then base64utf8 = oStream.ReadText
  37. End If
  38. Set oStream = Nothing
  39. Set oNode = Nothing
  40. Set oXML = Nothing
  41. End Function
复制代码
结果如下:
  1. ---------------------------
  2. Windows Script Host
  3. ---------------------------
  4. 批处理之家
  5. 5om55aSE55CG5LmL5a62
  6. ---------------------------
  7. 确定   
  8. ---------------------------
复制代码
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

返回列表