ASP FileObject.Name转换为'?'

时间:2014-01-19 20:59:47

标签: iis vbscript asp-classic

我有一个脚本列出了目录中的所有文件,然后对于每个文件,它将Response.Write名称和下载量。

我已经完成了所有工作,但是当我进行测试时,名称中包含“奇数”字符的文件将替换为?

我猜,因为有些文件有外语和名字,而且有些文件名称中有iPhone表情符号图标,所以它无法识别它并放置?代替,但是这个是一个严重的问题,因为我无法将正确的文件名返回给用户,然后将错误的名称反馈到要下载的URL。 (哪个不起作用)

有什么建议吗?

编辑:

set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder(Server.MapPath("."))

for each file in fo.files
    if fs.GetExtensionName(file.Path) = "plist" then
        dim tempList, tempName, ...
        tempList = split(file.Name, ".")

        'Manipulate name and data ...

        Response.write(name)
    end if
next

文件名本身有奇数字符,而file.Name会返回?而不是实际存在的字符。

18アイコン就是一个例子。

1 个答案:

答案 0 :(得分:1)

以下是一些适用于我的代码:

<%@ Language="VBScript" CodePage="65001" %><%

    Option Explicit

    Response.CodePage = 65001
    Response.CharSet = "utf-8"

    Dim fs, fo, file

    Set fs = Server.CreateObject("Scripting.FileSystemObject")
    Set fo = fs.GetFolder(Server.MapPath("."))

    For Each file In fo.files
        If fs.GetExtensionName(file.Path) = "plist" Then
            ' Do whatever here...

            Response.Write file.Name & "<br>"
        End If
    Next
%>

如果您使用的是之前没有标注过的变量,则需要删除Option Explicit;否则,VBScript会抱怨你没有标注它们。

编辑:我复制&amp;贴错了代码;这段代码有效。