• vbs 读unicode 编码格式的文件


    使用VBS 写了一个函数来读取一个txt文件,函数如下:

    Dim fso,hf
    Function readProgFile(byval progFileName)
            Dim progStrLine
            progStrLine = ""
              
             Set fso = CreateObject("Scripting.FileSystemObject")
             Set hf = fso.OpenTextFile(progFileName)
        
        
              Do Until hf.atendofstream 
                 progStrLine = progStrLine+ hf.readline+ vbCrLf
            Loop
    
            hf.close
            readProgFile = progStrLine
        
    End Function

    其中参数progFileName 是txt 文件的文件名;txt是unicode 编码格式,里面有中文。用该函数读取的txt 里的内容中文部分都是乱码;

    最后发现这是函数OpenTextFile 的参数设置出了问题。

    OpenTextFile 函数如下:

    object.OpenTextFile(filename[, iomode[, create[, format]]])

    参数

    object

    必选项。应为 FileSystemObject 对象的名称。

    filename

    必选项。字符串表达式,指明要打开的文件名称。

    iomode

    可选项。输入/输出模式,是下列三个常数之一:ForReading,ForWriting,或 ForAppending。

    iomode 参数可为下列设置之一:

    create

    可选项。Boolean 值,指出当指定的 filename 不存在时是否能够创建新文件。允许创建新文件时为 True,否则为False。默认值为 False

    format

    可选项。三个 Tristate 值之一,指出以何种格式打开文件。若忽略此参数,则文件以 ASCII 格式打开。

     所以openText 里面的参数format 应该选择使用unicode 格式打开,修改为如下:

     Set hf = fso.OpenTextFile(progFileName,1,0,-1)'read unicode file

    中文读取正确了,问题解决!

     

     

     

     

     

  • 相关阅读:
    C#如何从普通C++动态库导入一个类?
    MFC的子类化技术
    [转贴] 不要以为使用了模式就是好设计
    VC编程经验汇总(三)
    钩子技术介绍及函数使用
    关于VC中的时间函数讨论
    my read_girl
    Linux + SVN / CVS / ClearCase
    OS + Linux Edit emacs /vi vim gvim /SciTE /gedit /kedit /UltraEdit /nedit /sedf
    java Regular Expression / regexp / zhengzebiaodashi
  • 原文地址:https://www.cnblogs.com/small-lazybee/p/11208211.html
Copyright © 2020-2023  润新知