我正在使用vb脚本将文件上传到服务器。我遇到的问题是当我将文件设置为ASCII格式时......
Set oFile = oFS.CreateTextFile(sPath & FileName, True, False)
当调用sub表示
时,我收到错误无效的过程调用或参数
但如果我将文件设置为unicode
Set oFile = oFS.CreateTextFile(sPath & FileName, True, True)
它上传成功但由于编码错误而无法打开。 产生错误的行是这个,如果格式是ASCII就是这个
oFile.Write BinaryToString(FileData)
其中oFile
是我在上面创建的ASCII文件
以下是产生错误的源代码。这是我上网的上传功能..
Public Sub SaveToDisk(sPath)
Dim oFS, oFile
Dim nIndex
If sPath = "" Or FileName = "" Then Exit Sub
If Mid(sPath, Len(sPath)) <> "\" Then sPath = sPath & "\"
Set oFS = Server.CreateObject("Scripting.FileSystemObject")
If Not oFS.FolderExists(sPath) Then Exit Sub
Set oFile = oFS.CreateTextFile(sPath & FileName, True, False)
oFile.Write BinaryToString(FileData)
oFile.Close
End Sub
Function BinaryToString(Binary)
'Antonin Foller, http://www.motobit.com
'Optimized version of a simple BinaryToString algorithm.
Dim cl1, cl2, cl3, pl1, pl2, pl3
Dim L
cl1 = 1
cl2 = 1
cl3 = 1
L = LenB(Binary)
Do While cl1<=L
pl3 = pl3 & Chr(AscB(MidB(Binary,cl1,1)))
cl1 = cl1 + 1
cl3 = cl3 + 1
If cl3>300 Then
pl2 = pl2 & pl3
pl3 = ""
cl3 = 1
cl2 = cl2 + 1
If cl2>200 Then
pl1 = pl1 & pl2
pl2 = ""
cl2 = 1
End If
End If
Loop
BinaryToString = pl1 & pl2 & pl3
End Function
可能是服务器上的配置吗?如果这有任何意义请帮助..
答案 0 :(得分:2)
我怀疑BinaryToString不仅返回ASCII(实际上是当前的OEM代码页)字符,还返回unicode范围内OEM代码页集之外的其他字符。
BinaryToString究竟做了什么?
答案 1 :(得分:-1)
经过一段不合理的长时间处理同样的问题,没有真正对我有意义,与Unicode无关,我终于得到了它与之合作:
Set oFile = oFS.CreateTextFile(sPath & FileName, 8)
这个页面对我很有用: http://ns7.webmasters.com/caspdoc/html/vbscript_filesystemobject_object_opentextfile_method.htm
Ilya Evdokimov