【问题标题】:File Download Dialog文件下载对话框
【发布时间】:2015-06-22 18:56:22
【问题描述】:

我有一个问题。

在 ASP.NET 应用程序中,我创建了指向某个文档的链接,文档名称存储在数据库中,当用户单击链接时,会出现文件下载对话框。

当文件名是塞尔维亚西里尔语时出现问题,文件下载对话框显示文件名带有一些奇怪的字符。看图

当我对文件名使用 HtmlEncode 时,IE 工作正常(显示正确的文件名),但问题出在 FireFox 中。

谢谢。

【问题讨论】:

标签: c# asp.net encoding localization


【解决方案1】:

您必须对非 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;
    }  

并检查您是否必须对其进行编码 - 它应该可以在 IE 和 FF 中工作:

if (Page.Request.Browser.IsBrowser("IE"))  
fileName = URLEncode(fileName);

【讨论】:

  • 好的,谢谢,但是您已经有了 UrlEncode HttpUtility.UrlEncode(tekst) 的方法,您不必自己编写。我是这样工作的,但我想看看是否有一些更好的解决方案。
猜你喜欢
  • 2013-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 2018-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多