读取vbs中的特殊字符

时间:2016-04-08 13:50:22

标签: vbscript character-encoding

我在阅读vbs脚本中的特殊字符时遇到了麻烦。 我的阅读文件是这样的。

  ls_folder = "file path"
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set fa = fso.OpenTextFile(ls_folder + f1.Name, 1, False)
  Do While fa.AtEndOfStream <> True
    Line = fa.readline
    'Code
    Next

如果我用N ++打开文件,我得到的编码是ANSI。我尝试使用OpenTextFile的第4个参数,但3个值都没有为我工作。 脚本不读“ł”字符。当编码为ascii时,它给出值179。

除了使用ADODB.Stream之外,还有其他方法可以声明编码,它允许声明Charset。

1 个答案:

答案 0 :(得分:0)

使用AscW function rather than Asc one AscW 是为使用Unicode字符的32位平台提供的。它返回Unicode(宽)字符代码,从而避免从Unicode转换为ANSI

请注意&#34; ł&#34;字符(Unicode U+0142,即十进制322)在下一个ANSI代码页中定义:

  • Asc("ł")179 中欧
  • 中返回ANSI 1250
  • Asc("ł")249 Baltic 中返回ANSI 1257

要获得证明,请打开charmap.exe或运行我的Alt KeyCode Finder脚本:

==> mycharmap "ł"
Ch Unicode    Alt?    CP    IME    Alt   Alt0    IME 0405/cs-CZ; CP852; ANSI 1250

 ł  U+0142     322         …66…                  Latin Small Letter L With Stroke
               136  CP852 cs-CZ    136   0179    (ANSI 1250) Central Europe
               136  CP775 et-EE          0249    (ANSI 1257) Baltic

 ł

==>

为了完整起见,AscB("ł")会返回66 ...