2

嘿,伙计们,我正在创建一个运行时 jnlp 文件以供下载,并且因为文件名有时来自用户名,所以我被文件名卡住了,因为文件名有时是阿拉伯文或其他语言......当使用它创建时,我得到的文件名是“ اخطاء البرنامج.jnlp"

我创建文件的代码

Set fs = Server.CreateObject("Scripting.FileSystemObject")
Set f = fs.CreateTextFile(Server.MapPath(id & "_" & user & ".jnlp"), true)
f.write(JNLPFile)
f.close
Set f = nothing
Set fs = nothing

其中CreateTextFile中的“用户”是用户给出的名称,有时可能包含 unicode 字符或其他语言字符...

这个问题的任何解决方案....?

4

1 回答 1

1

好吧,FileSystemObject 本身并不支持 UTF8。

您应该使用 ADODB Stream 对象而不是使用 File System Object 和 CreateTextFile 来构建新的文本文件。

下面是一个 VBScript 过程的示例,它将您的路径作为 strPath 并将文件的内容作为 strOut。

Sub Generate_File(strPath,strOut)

    Set objStream = Server.CreateObject("ADODB.Stream")
    objStream.Open
    objStream.Position = 0
    objStream.Charset = "UTF-8"
    objStream.WriteText strOut
    objStream.SaveToFile server.mappath(strPath),2
    objStream.Close

End Sub
于 2012-11-05T07:12:59.897 回答