代码之家  ›  专栏  ›  技术社区  ›  DevMania

urlrewriting.net不接受阿拉伯语查询字符串

  •  2
  • DevMania  · 技术社区  · 16 年前

    我疯了,我什么都试过了,urlencode,html encode,但是urlrewriting.net把阿拉伯语查询字符串读成了?骗子

    非常感谢你的帮助

    7 回复  |  直到 9 年前
        1
  •  3
  •   Asbjørn Ulsberg    16 年前

    如果安装了.NET 3.5 SP1,我建议您切换到 System.Web.Routing 而不是urlrewriting.net库。我最近从urlrewriting.net切换到 system.web.路由 我自己和路由是更好的考虑,更好地与ASP.NET管道集成。

    如果你有机会改变,我建议你。如果没有,请发布您的urlrewriting.net配置文件,以便我们可以调整显然不起作用的正则表达式。请发布一些不起作用的URI示例。

    另外,在 web.config 章节:

    <system.web>
      <globalization requestEncoding="utf-8"
                     responseEncoding="utf-8"
                     fileEncoding="utf-8" />
    </system.web>
    

    像上面的例子一样,使用UTF-8。还要确保在URI中将字符编码为UTF-8。

        2
  •  1
  •   Asbjørn Ulsberg    16 年前

    在“经典模式”下运行IIS 7应用程序时会发生什么情况(可能需要将安装作为可用选项)?

        3
  •  1
  •   DevMania    16 年前

    在冗长乏味的试验之后,我建议任何一个在集成模式下使用IIs7进行URL重写的人,不要浪费时间,要么使用MVC路由,要么忘记URL中的阿拉伯字符串。

        4
  •  1
  •   zaher    15 年前

    试试这个,速度更快……没有问题。

    “~/news/2008/10/10/newsid/newsid aspx” 其中newsid是文章的ID。

    从数据库中获取标题:“select*from news,其中id=&news id 它比“select*from news where title=''”快得多。

        5
  •  0
  •   DevMania    16 年前

    似乎我已经通过确保两个页面(包含链接的页面和解析查询字符串的页面)都使用UTF-8编码来解决了这个问题。

    但现在我又有一个问题 火狐正在地址栏中正确显示超链接和链接 但在IE6和IE7中是这样的

    mysite/News/2008/10/10/%D8%AA%D8%AC%D8%B1%D8%A8%D8%A9.aspx
    

    尽管IE6和IE7可以很好地解析链接,但这很难看,请问解决方案是什么?

        6
  •  0
  •   DevMania    16 年前

    更新 :伙计,你不会相信的,我发现这个问题很奇怪,它是与IIS 7集成模式, 尝试从Visual Studio开发人员服务器启动页面,Unicode字符将被很好地解析,但如果从IIS 7启动页面,它将为您提供????字符。

    希望有人能在这里遮光

        7
  •  -1
  •   Ali Ahmadi    9 年前

    您可以使用-> 服务器.urlencode(产品名称) 在global.aspx中或在重写之前使用 server.urldecode(request.querystring[“产品名称”]); 在PageLoad