标题: OpenTextFile与Unicode
作者: Demon
链接: https://demon.tw/programming/opentextfile-unicode.html
版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。
既然谈到了《VBS文件编码与Unicode》,顺便也测试一下 Scripting.FileSystemObject 对象的 OpenTextFile 方法对 Unicode 的支持吧。
测试之前先简单说一下 OpenTextFile 方法:
object.OpenTextFile(filename[, iomode[, create[, format]]])
OpenTextFile 方法有四个参数,除了第一个以为其他都是可选的,第一个参数是文件的路径,第二个参数是读写模式,第三个参数是创建参数,这是很多人都熟知的。但是第四个参数用的人就比较少了:
format 可选项。使用三态值中的一个来指明打开文件的格式。如果忽略,那么文件将以 ASCII 格式打开。
其实参考手册中说的并不正确,如果 format 参数忽略或者为 False,那么文件将以 ANSI 格式打开,而不是 ASCII;而如果 format 参数为 True,那么文件将以 Unicode 格式打开。
为了弄清楚 OpenTextFile 到底支持哪几种 Unicode 格式,测试代码如下:
Dim fso Set fso = CreateObject("scripting.filesystemobject") str = fso.OpenTextFile("demon.txt", 1, False, True).ReadAll WScript.Echo str
demon.txt
Copyright © 2011 Demon
测试结果
Unicode Little Endian With BOM | Copyright © 2011 Demon |
Unicode Little Endian Without BOM | Copyright © 2011 Demon |
Unicode Big Endian With BOM | Copyright © 2011 Demon |
Unicode Big Endian Without BOM | 显示乱码 |
UTF-8 With BOM | 显示乱码 |
UTF-8 Without BOM | 显示乱码 |
从结果可以看出,OpenTextFile 支持带 BOM 的 Unicode 和不带 BOM 的 Unicode Little Endian,但是不支持 UTF-8。同理可知,该结论在 OpenAsTextStream 方法中也是一样的。
赞赏微信赞赏支付宝赞赏
随机文章:
OpenTextFile这个函数挺好用,我在LabVIEW里已经把他做成子函数了。
看来还是要动手,
我一直以为这个参数支持utf-8
但也没实际用过,一般都用stream了.