C# 文件下载对话框
我有一个问题 在ASP.NET应用程序中,我创建了指向某个文档的链接,文档名存储在数据库中,当用户单击链接文件下载对话框时,就会出现 当文件名为塞尔维亚西里尔语时会出现问题,文件下载对话框会显示带有一些奇怪字符的文件名。见图片 当我使用HtmlEncode作为文件名时,IE工作正常(显示正确的文件名),但问题出在FireFox中C# 文件下载对话框,c#,asp.net,encoding,localization,C#,Asp.net,Encoding,Localization,我有一个问题 在ASP.NET应用程序中,我创建了指向某个文档的链接,文档名存储在数据库中,当用户单击链接文件下载对话框时,就会出现 当文件名为塞尔维亚西里尔语时会出现问题,文件下载对话框会显示带有一些奇怪字符的文件名。见图片 当我使用HtmlEncode作为文件名时,IE工作正常(显示正确的文件名),但问题出在FireFox中 谢谢。您必须对非AscII字符进行编码。我正在使用这种方法: public static string URLEncode(string tekst)
谢谢。您必须对非AscII字符进行编码。我正在使用这种方法:
public static string URLEncode(string tekst)
{
byte[] t = Encoding.UTF8.GetBytes(tekst);
string s = "";
for (int i = 0; i < t.Length; i++)
{
byte b = t[i];
int ib = Convert.ToInt32(b);
if (ib < 46 || ib > 126)
{
s += "%" + ib.ToString("x");
}
else
{
s += Convert.ToChar(b);
}
}
return s;
}
好的,谢谢,但您已经有了UrlEncode HttpUtility.UrlEncode(tekst)的方法,您不需要编写自己的方法。我一直在用这种方法,但我想看看是否有更好的解决方案
if (Page.Request.Browser.IsBrowser("IE"))
fileName = URLEncode(fileName);