Dio*_*nco 5 encoding ascii utf-8 char character-encoding
当我只有扩展的 ASCII 代码时,我试图弄清楚如何对字符串进行 url 编码,逐个字符。
例如,对于 128 以下的代码,这非常简单:char "?" 的代码。是63,也就是16进制的3F,所以字符串“?”的url编码 是“%3F”。
是否可以对 > 127 个字符代码执行相同操作?例如,“á”的代码是 225(基数为 16 的 E1)。是否有可能从这里到达构成“á”的url编码的字节%C3%A1?如果是,需要进行哪些操作?
编辑:我应该更具体,字符集是(ISO Latin-1)。看来我还应该更清楚地说明这个问题是关于以编程方式进行转换的公式/方式,而不是关于如何使用某种语言的某个库对字符进行 urlencode。
如果您的“扩展 ASCII”编码是 ISO-8859-1,那么您很幸运。Unicode的前 255 个Unicode 点(非 UTF-8 编码)遵循 ISO-8859-1。即á
== U+00E1
。
如果您有任何其他编码,那么您就不走运了。字符的映射是任意的,因此需要罗塞塔石碑而不是计算。
一旦有了 Unicode 点,您就可以使用https://tools.ietf.org/html/rfc3629 中的规范相对轻松地将其编码为 UTF-8 。如果您的问题中没有定义编程语言,则尝试在此处详细说明该转换超出了范围。
百分比编码是将百分比编码规范应用于 UTF-8 字符的问题。
幸运的是,大多数编程语言都内置了用于这种转换的第三方库。