2012-08-16 63 views
2

嘿傢伙我正在創建一個運行時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

回答

1

那麼,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