傳遞值的時候URLEncode一下就可以了,這是一個較好的解決辦法。
再一個解決方法是將文件名改成英文名。
還有一個方法是在IE里面設置,“選項”“高級”里面“總是以utf-8發(fā)送”這一項打勾去除。
ASP+中文顯示之兩種解決方法。
剛開始寫ASP+程序時候碰到的第一個比較大的問題就是中文顯示問題,運行后發(fā)現(xiàn)ASP+從數(shù)據(jù)庫中讀出來的中文全部變成了?????,有點類似jsp中的這個頻率出現(xiàn)最高的中文顯示問題了,查了資料發(fā)現(xiàn)有種方法可以輕松解決中文問題。
方法一:
在翻閱了微軟NGWS文檔后發(fā)現(xiàn)在文檔的常見問題部分有提到要添加一個config.web文件到
web目錄下,試了一下,中文顯示果然OK了。
方法如下:
建立一個文件config.web,內(nèi)容如下,放在WEB目錄下
。糲onfiguration>
。糶lobalization
requestencoding="utf-8"
responseencoding="utf-8"
/>
</configuration>
方法二:
在微軟的新聞組dotnet.framework.aspplus.general中發(fā)現(xiàn)有討論這個問題的文章,方法為添加<%@ 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" %>
。糷tml>
。糷ead>
。糾eta 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")%>\'>都可以
編輯:北京信誠IT保姆IT外包部 http:// www.fouzheng.cn www.xcit.com.cn |