拉丁编码字符是不是被认为是 URL 安全的?

Posted

技术标签:

【中文标题】拉丁编码字符是不是被认为是 URL 安全的?【英文标题】:Are Latin encoded characters considered URL safe?拉丁编码字符是否被认为是 URL 安全的? 【发布时间】:2011-09-12 18:40:13 【问题描述】:

拉丁编码字符是否被认为是 URL 安全的?

阅读this post 后,我知道this document 中概述了网络安全字符。但是,规范没有明确说明拉丁编码字符是否属于未保留列表的一部分。例如:çõ

我不明白为什么这些字符不会包含在未保留列表中。但是,也就是说,我还没有看到任何包含此类字符的 URL。

相关问题:假设我可以在我的网址中使用这些字符,我应该这样做吗?

我的网址将由用户输入生成。我应该保留带有这些字符的标题,还是替换它们?例如,ç 变为 c,以此类推。

我的读者的母语是葡萄牙语,但我不确定他们是否会关心页面友好 URL 中的这些字符。

【问题讨论】:

【参考方案1】:

您提到的 RFC 特别提到 ASCII 作为 URI 的字符集:

ABNF 表示法将其终端值定义为非负数 基于 US-ASCII 编码字符集的整数(代码点) [ASCII]。

就 RFC 而言,这会使 ASCII 以外的字符不安全。

当然,这都是在IDN 存在之前。有一个 RFC 指定 URL 上的 ASCII 和 Unicode 之间的转换应该如何发生。

【讨论】:

【参考方案2】:

你可以使用任何你想要的字符,因为如果任何字符被使用在 ASCII 代码列表的范围之外,则使用百分比代码八位字节来使 uri 可传输

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于拉丁编码字符是不是被认为是 URL 安全的?的主要内容,如果未能解决你的问题,请参考以下文章

AFNetworking 中的奇怪编码行为

URL安全的Base64编码,解码

字符编码

在 docker 上运行的 asp.net 核心未正确编码拉丁字符

字符编码

为 AJAX 请求在 jQuery 中对字符串进行 URL 编码