为什么 一点就说无法显视呢?

北极海hein 2003-09-29 12:01:19
为什么<a href="测试下载.zip"></a> 一点就说无法显视呢?
<a href="testbook.zip"></a>就没问题,
请问是什么原因呢?以前我也用过中文做文件名都可以,
昨天在另一台机器装了IIS,用中文名就不行了.
...全文
135 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zag 2003-09-29
  • 打赏
  • 举报
回复
在Web.config中加入字符集声明
programmeraaron 2003-09-29
  • 打赏
  • 举报
回复
要是所在服务器不是自己的话,可能会检查字付格式,会被禁止
seesea125 2003-09-29
  • 打赏
  • 举报
回复
web.config
<globalization
requestEncoding="gb2312"
responseEncoding="gb2312"
/>
chengzhele37 2003-09-29
  • 打赏
  • 举报
回复
不要用中文就是了
slippers3000 2003-09-29
  • 打赏
  • 举报
回复
这是由于GB2312和UTF-8两种不同的编码方式造成的!
你可以到工具-=》IE 选项-=》高级-=》最下面的“总是以UTF-8方式发送URL”取消,这样你保证可以不管什么奇数\偶数\中文都正常使用了!
所以你现在要把你的链接用函数进行编码转换!
我以前收集的方法如下: 希望可以帮助到你,我以前就是用 server.urlencode("http://xxx/中文.zip") 解决了的
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
----------------------------------------------------------------------
server.urlencode("http://xxx/中文.zip")
----------------------------------------------------------------------
这是VBScript的,用来代替server.urlencode的:
<%
Function getURL(URL)
dim I,Code,C

For I=1 To Len(URL)
C=Mid(URL,I,1)
Code =Asc(C)
If Code<0 Then Code = Code + 65535
If Code>255 Then
getURL = getURL & "%"&Left(Hex(Asc(C)),2) & "%"&Right(Hex(Asc(C)),2)
Else
getURL = getURL & C
End If
Next
End Function
%>
<a href="<%=getURL("http://192.168.100.84/职教档案/天津职教/呼叫中心宣传资料.ppt"%>">下载</a>


你这样试试
<a href="http://192.168.100.84/职教/天津/**.doc ">下载</a>
鼠标右键-〉目标另存为,看能否下载
---------------------------------------------------------------
用UTF-8编码
<%@ Language=VBScript codepage=65001 %>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>


听说可以这样转化,没试过:
GB2312 -- UTF-8
iconv("GB2312","UTF-8",$text)

UTF-8 -- GB2312
iconv("UTF-8","GB2312",$text)

-------------------------------------------------------------------------
<script>

function chineseFromUtf8Url(strUtf8)
{
var bstr = "";
var nOffset = 0; // processing point on strUtf8

if( strUtf8 == "" )
return "";

strUtf8 = strUtf8.toLowerCase();
nOffset = strUtf8.indexOf("%e");
if( nOffset == -1 )
return strUtf8;

while( nOffset != -1 )
{
bstr += strUtf8.substr(0, nOffset);
strUtf8 = strUtf8.substr(nOffset, strUtf8.length - nOffset);
if( strUtf8 == "" || strUtf8.length < 9 ) // bad string
return bstr;

bstr += utf8CodeToChineseChar(strUtf8.substr(0, 9));
strUtf8 = strUtf8.substr(9, strUtf8.length - 9);
nOffset = strUtf8.indexOf("%e");
}

return bstr + strUtf8;
}

function unicodeFromUtf8(strUtf8)
{
var bstr = "";
var nTotalChars = strUtf8.length; // total chars to be processed.
var nOffset = 0; // processing point on strUtf8
var nRemainingBytes = nTotalChars; // how many bytes left to be converted
var nOutputPosition = 0;
var iCode, iCode1, iCode2; // the value of the unicode.

while (nOffset < nTotalChars)
{
iCode = strUtf8.charCodeAt(nOffset);
if ((iCode & 0x80) == 0) // 1 byte.
{
if ( nRemainingBytes < 1 ) // not enough data
break;

bstr += String.fromCharCode(iCode & 0x7F);
nOffset ++;
nRemainingBytes -= 1;
}
else if ((iCode & 0xE0) == 0xC0) // 2 bytes
{
iCode1 = strUtf8.charCodeAt(nOffset + 1);
if ( nRemainingBytes < 2 || // not enough data
(iCode1 & 0xC0) != 0x80 ) // invalid pattern
{
break;
}

bstr += String.fromCharCode(((iCode & 0x3F) << 6) | ( iCode1 & 0x3F));
nOffset += 2;
nRemainingBytes -= 2;
}
else if ((iCode & 0xF0) == 0xE0) // 3 bytes
{
iCode1 = strUtf8.charCodeAt(nOffset + 1);
iCode2 = strUtf8.charCodeAt(nOffset + 2);
if ( nRemainingBytes < 3 || // not enough data
(iCode1 & 0xC0) != 0x80 || // invalid pattern
(iCode2 & 0xC0) != 0x80 )
{
break;
}

bstr += String.fromCharCode(((iCode & 0x0F) << 12) |
((iCode1 & 0x3F) << 6) |
(iCode2 & 0x3F));
nOffset += 3;
nRemainingBytes -= 3;
}
else // 4 or more

bytes -- unsupported
break;
}

if (nRemainingBytes != 0)
{
// bad UTF8 string.
return "";
}

return bstr;
}

function utf8CodeToChineseChar(strUtf8)
{
var iCode, iCode1, iCode2;
iCode = parseInt("0x" + strUtf8.substr(1, 2));
iCode1 = parseInt("0x" + strUtf8.substr(4, 2));
iCode2 = parseInt("0x" + strUtf8.substr(7, 2));

return String.fromCharCode(((iCode & 0x0F) << 12) |
((iCode1 & 0x3F) << 6) |
(iCode2 & 0x3F));
}
alert(chineseFromUtf8Url("%E6%B5%8B%E8%AF%95"))
</script>
北极海hein 2003-09-29
  • 打赏
  • 举报
回复
sp3应该没问题的,因为我有一台IIS机器打了sp3,无论是中文还是英文的文件名都没问题.
我另一台打了sp4,装完IIS,dotnetframework1.1就出现这种情况.

顺便再问一下:IIS,donetframework,sql2000 server 的安装顺序是否有影响?
我记得以前的帐子曾提到安装顺序的问题.
declude 2003-09-29
  • 打赏
  • 举报
回复
是不是打了sp3??
北极海hein 2003-09-29
  • 打赏
  • 举报
回复
machineconfig具体怎么搞?
suguanqun 2003-09-29
  • 打赏
  • 举报
回复
最好用英文!不然总出问题!
netcar 2003-09-29
  • 打赏
  • 举报
回复
machineconfig
adminlxj79 2003-09-29
  • 打赏
  • 举报
回复
我以前也遇到过此问题,解决方法是重装了.NET所有组件和相关组件更新,然后就好用了!

按照这个方法,肯定能行!!
北极海hein 2003-09-29
  • 打赏
  • 举报
回复
我加了
<globalization
requestEncoding="gb2312"
responseEncoding="gb2312"
/>
还是不行.
gujie 2003-09-29
  • 打赏
  • 举报
回复
用英文名

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧