Classic ASP中FolderExists遇ChrW(160)空格返回False的问题求助
解决Classic ASP中FolderExists无法识别含ChrW(160)空格的文件夹问题
问题核心是URL参数传递的ListName中包含非断行空格(ChrW(160)),而FileSystemObject的FolderExists方法只识别普通空格(Chr(32)),导致路径不匹配返回False;硬编码时用的是普通空格,所以能正常检测。
解决方案:替换非断行空格为普通空格
你之前尝试替换可能是写法有误,正确的替换方式是使用Replace函数将ChrW(160)替换为Chr(32),同时可额外处理首尾空白避免参数冗余:
Dim ListName, cleanedListName ListName = Request("ListName") ' 替换ChrW(160)为普通空格 cleanedListName = Replace(ListName, ChrW(160), Chr(32)) ' 可选:去除参数首尾多余空白 cleanedListName = Trim(cleanedListName) ' 使用清理后的名称执行文件夹检测 If fs.FolderExists("d:\web\localuser\mbweb.dk\public_html\mbwebaudio\" & userFolder & "\" & cleanedListName) Then Response.Write "true" Else Response.Write "false" End If
补充说明
- 非断行空格(NBSP)通常来自复制粘贴或富文本输入,肉眼和普通空格无区别,但ASCII编码不同(ChrW(160) vs Chr(32))
- 如果替换后仍有问题,可通过
Asc(Mid(ListName, 位置索引, 1))输出具体字符编码,排查是否存在其他不可见字符并针对性替换
内容的提问来源于stack exchange,提问作者Morten Brockhoff
相关产品推荐
相关产品推荐

