我在阅读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。
答案 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
...