VBScript与文件的编码

首先,VBScript的脚本源文件得是ANSI编码的,如果保存为UTF-8格式的,执行时可能会报错,比如你语法什么的都没有问题,不过代码中包含汉字串,那么可能执行时就会出现“未结束的字符串常量”之类的错误。
VBScript读取文本文件的话,采用Scripting.FileSystemObject只能读取ANSI格式的文件

Set objTextFile = CreateObject("Scripting.FileSystemObject").OpenTextFile("params.json", 1)
strResponses = objTextFile.ReadAll
objTextFile.Close

如果文件是其他编码格式的,可以采用ADODB.Stream并设置Charset属性,然后 open和loadfromfile 下面的例程也可以读取ansi编码的文件内容

Set args = CreateObject("ADODB.Stream")
With args
.Charset = "GBK"
.Open
.loadfromfile "params.json"
strResponses = .ReadText
End With
Set args = Nothing

注意了,此处Charset的默认值是Unicode,例程中设置的是GBK而不是ansi 因为ansi并不是一个特定的编码格式,windows环境下的不同语言的版本下可能不一样,比如中文简体的ansi可能是GBK,而中文繁体下ansi可能是Big5
另外关于字符串比较,在每种开发语言里都要约定编码格式的,虽然显示起来似乎没有区别,但是字符集不同的字符串比较没有意义的。VBScript源码里如果有汉字串,那么它应该是ansi编码的,你从文件里得到的相应内容如果是其他编码的,比如utf-8的,如果要进行比较,那么需要转换成同样的编码,或者干脆要求提供内容的源文件也是ansi编码的,免得在脚本中还要处理编码转换。

相关推荐

  1. VBScript文件编码

    2024-05-09 07:32:04       32 阅读
  2. 【Excel VBA】深入探索VBScriptChoose函数

    2024-05-09 07:32:04       38 阅读
  3. C文件编写动态库

    2024-05-09 07:32:04       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-09 07:32:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-09 07:32:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-09 07:32:04       82 阅读
  4. Python语言-面向对象

    2024-05-09 07:32:04       91 阅读

热门阅读

  1. windows10鼠标右键添加idea打开文件

    2024-05-09 07:32:04       39 阅读
  2. Linux内核--设备驱动(九)WIFI

    2024-05-09 07:32:04       37 阅读
  3. MongoDB聚合运算符:$toLong

    2024-05-09 07:32:04       36 阅读
  4. MongoDB聚合运算符:$toLower

    2024-05-09 07:32:04       34 阅读
  5. 【Axure视频教程】元件交互样式

    2024-05-09 07:32:04       28 阅读
  6. Linux内核--设备驱动(八)网络整理

    2024-05-09 07:32:04       39 阅读
  7. ASP.NET MVC 4升级迁移到ASP.NET MVC 5

    2024-05-09 07:32:04       34 阅读
  8. 三目运算符-简化代码C/C++

    2024-05-09 07:32:04       28 阅读