VBS字符串编码转换函数代码
利用ADODB.Stream对象,VBScript可实现字符串编码转换。核心思路是先将字符串按源编码转为二进制字节流,再按目标编码还原。提供StringToBytes、BytesToString和AlterCharset三个函数,支持GB2312与ISO-8859-1等单字节编码间的转换,适用于旧系统或硬件交互场景。
因为业务需要,经常要处理字符串编码转换的问题。比如从GB2312转到ISO-8859-1,或者反过来。VBScript本身没有直接提供这种跨编码的转换接口,但借助ADODB.Stream这个对象,可以很优雅地实现。

核心思路其实很简单:先把字符串按源编码读成二进制字节流,再按目标编码从字节流还原成字符串。ADODB.Stream正好支持这种“文本模式→二进制模式”的切换,中间通过Flush和Position归零来同步数据。
下面是具体的函数实现,代码里已经加了注释,一目了然。
Const adTypeBinary = 1
Const adTypeText = 2
' 将字符串按指定编码转换为字节数组
Function StringToBytes(Str, Charset)
Dim Stream : Set Stream = CreateObject("ADODB.Stream")
Stream.Type = adTypeText
Stream.Charset = Charset
Stream.Open
Stream.WriteText Str
Stream.Flush
Stream.Position = 0
' 回退到开头,切换为二进制模式读出字节
Stream.Type = adTypeBinary
StringToBytes = Stream.Read
Stream.Close
Set Stream = Nothing
End Function
' 将字节数组按指定编码转换为字符串
Function BytesToString(Bytes, Charset)
Dim Stream : Set Stream = CreateObject("ADODB.Stream")
Stream.Charset = Charset
Stream.Type = adTypeBinary
Stream.Open
Stream.Write Bytes
Stream.Flush
Stream.Position = 0
' 回退到开头,切换为文本模式读出字符串
Stream.Type = adTypeText
BytesToString = Stream.ReadText
Stream.Close
Set Stream = Nothing
End Function
' 将字符串从一种单字节编码转换为另一种单字节编码
Function AlterCharset(Str, FromCharset, ToCharset)
Dim Bytes
Bytes = StringToBytes(Str, FromCharset)
AlterCharset = BytesToString(Bytes, ToCharset)
End Function
三个函数分别对应“字符串→字节”、“字节→字符串”和“编码转换”。其中AlterCharset是把前两个函数组合起来,一步到位。需要注意的是,这里假设源和目标都是单字节编码(如windows-1252、windows-1251、GB2312等),如果涉及Unicode类的多字节编码,写法会稍有不同,但原理类似。
使用起来也很直接:
dim s1, s2, FromCharset, ToCharset s1 = "我的字符串之" FromCharset = "GB2312" ToCharset = "ISO-8859-1" s2 = AlterCharset(s1, FromCharset, ToCharset)
上面这段代码会把“我的字符串之”从GB2312编码转成ISO-8859-1编码。注意,ISO-8859-1是西欧字符集,中文汉字会变成乱码,这恰恰是编码转换的典型场景——比如你要把数据写入一个只支持Latin-1的旧系统,或者需要和某些硬件设备交互。
如果你在工作中遇到类似需求,不妨直接拿这两个函数去用。灵活调整Charset参数,就能在各种编码之间自由切换了。
WPS Office是一款面向macOS用户的综合办公套件,将文字处理、电子表格、演示文稿、PDF工具、模板与云协作整合在同一应用中。它兼容常见Microsoft Office格式,支持Intel及Apple芯片Mac,基础功能可免费使用,
Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。
REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。
Postman 是面向 API 全生命周期的开发与协作平台。Windows 桌面版可用于构建和发送 HTTP、GraphQL、gRPC、WebSocket、MQTT 等请求,并提供环境变量、集合、脚本测试、模拟服务、监控、文档及团队工作区等
Navicat Premium 是一体化数据库开发与管理工具,可在同一界面连接 MySQL、PostgreSQL、SQL Server、Oracle、SQLite、MongoDB、Redis 等数据库,
Adobe Premiere(原名 Adobe Premiere Pro)是一款面向影视、短视频、广告和网络内容制作的专业非线性编辑软件。Windows 版提供多轨剪辑、字幕转录、调色、音频处理、动态图形、格式转换与智能辅助工具,













