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

浏览器url中的非英文字符

  •  4
  • Daniel  · 技术社区  · 16 年前

    /bg//81爽肤面膜

    如何在浏览器url路径中获得这样的显示,而不是

    /bg/%d0%bf%d1%80%d0%be%d0%b4%d1%83%d0%ba%d1%82%d0%b8/81爽肤面膜

    1. HttpUtility。UrlEncode(“/bg//81肤色面膜”)-相同的结果(部分字符不可读)
    2. HttpUtility。UrlEncodeUnicode(“/bg//81肤色蒙版”)-甚至无法正确呈现链接(奇怪)
    3. HttpUtility。UrlPathEncode(“/bg//81肤色面膜”)-相同的结果(部分字符不可读)
    3 回复  |  直到 16 年前
        1
  •  3
  •   bobince    16 年前
    http://www.example.com/bg/продукти/81-skin-toning-mask
    

    IRI .

    http://www.example.com/bg/%d0%bf%d1%80%d0%be%d0%b4%d1%83%d0%ba%d1%82%d0%b8/81-skin-toning-mask
    

    是否正确 URI 代表上述IRI。

    <a href>

    使用URI版本通常被认为对旧浏览器更友好,但是当你这样做时,IE(奇怪地)会在地址栏中显示URI版本,而不是漂亮的IRI版本,即使它是相同的地址,IE也会发送相同的请求来获取它。此外,IE永远不会显示未编码的字符(尽管俄语对我有效)。

    因此,如果你更关心让你的地址栏在IE中看起来很漂亮,而不是支持旧的IRI之前的浏览器,只需将非ASCII字符串直接写入页面,只转义带外ASCII字符。您的页面应该以UTF-8格式提供,以便在不同的IE设置下可靠地工作,但实际上,今天您所做的一切都应该是UTF-8。

        2
  •  0
  •   pavium    16 年前

    中统一资源定位符(URL)中允许字符的定义 RFC 1738 不考虑非拉丁(非US-ASCII)字符集。

    推荐文章