用阿拉伯语保存文件名使用传统的asp

问题描述:

嘿家伙我正在创建一个运行时jnlp文件下载,并在那里我卡住了文件名,因为它有阿拉伯语或其他语言的一段时间,因为文件名需要从用户名...当与创建我得到的文件名称为“اخطاءآOO±Ù†Ø§Ù...ج.jnlp”用阿拉伯语保存文件名使用传统的asp

我为创建文件

代码
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“用户”是通过其可以有时含有UNIC用户给定的名称ode字符或其他语言字符...

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

+0

让你确信变量'user'包含在MapPath和CreateTextFile调用中使用的正确文本_before_? – AnthonyWJones 2012-08-16 14:07:45

+0

以及变量'用户'收到表单输入,这是什么,但用户名...所以我认为这将只是一个正常的文本,不会是空间或特殊字符在里面......后来我得到知道他们还想输入其他语言字符......保存jnlp文件的主要动机是客户端希望jnlp自动加载而不要求他在**'IE' **浏览器中保存或打开...所以刺激下载我已经保存在服务器中的文件,我打电话给它...如果不是那里不会是一个问题... – 2012-08-17 10:17:39

+0

你确定窗体输入值使其正确的服务器端变量?我非常强烈地怀疑它不是。 – AnthonyWJones 2012-08-17 17:01:13

那么,FileSystemObject本身不支持UTF8。

你应该做什么而不是使用File System Object和CreateTextFile来构建一个新的文本文件是使用ADODB Stream对象。

以下是一个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