C# 编码URL的算法

C# 编码URL的算法,c#,algorithm,encoding,base64,C#,Algorithm,Encoding,Base64,在C语言中是否有一些算法可以用符号对url进行编码,从而在web浏览器中正确显示 类似Base64的东西。标准aka为您进行了规划。特别是,§2和2.1: 二,。人物 URI语法提供了一种编码数据的方法,可能用于 为了识别资源,如字符序列。URI 反过来,字符经常被编码为八位字节以进行传输 或介绍。本规范不强制要求任何特殊要求 URI字符和八位字节之间映射的字符编码 用于存储或传输这些字符。当URI出现在 协议元素,字符编码由该协议定义; 如果没有这样的定义,则假定URI处于相同的位置 将字符编

在C语言中是否有一些算法可以用符号对url进行编码,从而在web浏览器中正确显示

类似Base64的东西。

标准aka为您进行了规划。特别是,§2和2.1:

二,。人物

URI语法提供了一种编码数据的方法,可能用于 为了识别资源,如字符序列。URI 反过来,字符经常被编码为八位字节以进行传输 或介绍。本规范不强制要求任何特殊要求 URI字符和八位字节之间映射的字符编码 用于存储或传输这些字符。当URI出现在 协议元素,字符编码由该协议定义; 如果没有这样的定义,则假定URI处于相同的位置 将字符编码为周围的文本

ABNF符号将其终端值定义为非负 基于US-ASCII编码字符集的整数码点 [ASCII]。因为URI是一个字符序列,所以必须反转 为了理解URI语法,需要使用该关系。因此, ABNF使用的整数值必须映射回其 通过US-ASCII输入相应字符,以完成语法 规则

URI由一组有限的字符组成,这些字符包括 数字、字母和一些图形符号。的保留子集 这些字符可用于在一个文本中分隔语法组件 而剩余的URI字符,包括未保留集和 而那些不作为分隔符的保留字符定义了每个 组件的标识数据

2.1。百分比编码

百分比编码机制用于表示数据中的八位字节 当八位字节的对应字符位于 允许的集合或正在用作 组成部分百分比编码的八位字节编码为字符 三元组,由百分比字符%后跟两个字符组成 表示该八位字节数值的十六进制数字。对于 例如,%20是二进制八位字节的编码百分比 00100000 ABNF:%x20,在US-ASCII中对应于空格 字符SP。第2.4节描述了百分比编码和 应用解码

pct编码=%HEXDIG HEXDIG

大写十六进制数字“A”到“F”相当于 小写数字“a”到“f”分别为。如果两个URI 仅在百分比编码中使用十六进制数字的情况下不同 八位字节,它们是等价的。为了一致性,URI生产者和 规范化程序应使用大写十六进制数字表示所有百分比- 编码

通常,在URL中可以自由表示而不进行百分比编码的字符只有

无保留字符。这些是US-ASCII 7位字符 A-Z a-z 0-9 -._~ 保留字符。。。当在URL及其方案的语法中作为角色使用时。这些保留字符是: :/?[]@!$&'*+,;= 根据标准,任何其他字符必须正确进行百分比编码


进一步注意,URL可能只包含从US-ASCII字符集0x00-0x7F提取的字符:如果您的URL包含超出该代码点范围的字符,则需要对这些字符进行适当编码,以便以US-ASCII表示,例如,通过HTML/XML实体引用。此外,您的应用程序负责解释这些问题。

我搜索其他算法,base64我已经使用:我在搜索引擎中键入C url encode,第一个结果回答您的问题。请在你的问题上再努力一点。欢迎!有几种方法,每种方法都有细微的不同。不过,在其他问题中已经详细讨论了这些问题: