传递值的时候URLEncode一下就可以了,这是一个较好的解决办法。 再一个解决方法是将文件名改成英文名。 还有一个方法是在IE里面设置,“选项”“高级”里面“总是以utf-8发送”这一项打勾去除。 ASP+中文显示之两种解决方法。 刚开始写ASP+程序时候碰到的第一个比较大的问题就是中文显示问题,运行后发现ASP+从数据库中读出来的中文全部变成了?????,有点类似jsp中的这个频率出现最高的中文显示问题了,查了资料发现有种方法可以轻松解决中文问题。 方法一: 在翻阅了微软NGWS文档后发现在文档的常见问题部分有提到要添加一个config.web文件到 web目录下,试了一下,中文显示果然OK了。 方法如下: 建立一个文件config.web,内容如下,放在WEB目录下 <configuration> <globalization requestencoding="utf-8" responseencoding="utf-8" /> </configuration> 方法二: 在微软的新闻组dotnet.framework.aspplus.general中发现有讨论这个问题的文章,方法为添加<%@ CODEPAGE = "936" %>到每一页的开头,有点类似于jsp中的<%@ page contentType="text/html;charset=gb2312"%>赶紧测试了一下,果然OK!!! 例子如下面所示 <%@ CODEPAGE = "936" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.ADO" %> <%@ Import Namespace="System.Globalization" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> 页面开头加<%@codepage=936%>试试. URLEncoe一下就可以解决了.如下: 假设: FileName="中文名.doc" gFilePubPath=你的虚拟目录的名字 Function GetArchURL(FileName) GetArchURL="" if Trim(FileName)="" then Exit Function FileName=Right(FileName,Len(FileName)-InStrRev(FileName,"\\")) FileMainName=Left(FileName,InStrRev(FileName,".")-1) FileExteName=Right(FileName,Len(FileName)-InStrRev(FileName,".")) FileMainName=Server.URLEncode(FileMainName) GetArchURL="/"&gFilePubPath&"/"&FileMainName&"."&FileExteName End Function <% url=Server.URLEncode("路径/office/aaa/中文名.doc")%.<a href=\'<%=url%>\'> 中文名.doc</a>没问题 <a href=\'office/aaa/<%=Server.URLEncode("文件")%>.doc\'><a href=\'<%=Server.URLEncode("office/aaa/文件.doc")%>\'>都可以 |