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

在构建数据URI时,使用什么代替dontReplace?

  •  0
  • IS4  · 技术社区  · 7 年前

    过时的 Uri(string, bool)

    我正在构建一个 data: URI,这是传递整个资源而不是其标识符的标准方式。虽然我知道它有一个 ;base64 HttpUtility.UrlEncode(byte[])

    因为我几乎别无选择,只能让。NET为我编码字符串,而不必使用过时的构造函数,并且没有 Uri(byte[]) 构造函数(在我看来,应该有),我可以选择什么来构造URI?

    Encoding.GetEncoding(1252) 编码方法使用UTF-8来编码字符,所以我觉得根本不可能使用文本编码。

    我有什么选择?如果没有其他方法,可以继续使用过时的构造函数吗?

    2 回复  |  直到 7 年前
        1
  •  0
  •   Jon Hanna    7 年前

    有些情况下,如果没有base64,URI会更短,例如二进制数据更少

    当数据为文本时,不能使用基于时间的64。否则结果将是胡言乱语。

    因为cp1252可以解码任何字符

    URI

    不,它会产生错误的结果。

    Uri.EscapeDataString() . 如果数据不是文本数据,则使用base-64将其编码为文本,然后从那里开始。不要试图在URI中放入在URI中没有意义的内容。

        2
  •  0
  •   IS4    7 年前

    Uri 构造函数接受预编码的URI,并且不替换有效的URI % dontReplace公司 构造时实际上不需要参数