URL可以有UTF-8字符吗?
我很好奇是否应该用ASCII或UTF-8编码URL。我相信URL不能有非ASCII字符,但有人告诉我他们可以有UTF-8,我四处搜索,找不到哪一个是正确的。有人知道吗?这有两个部分,但它们都是“是的” 使用,可以使用完整的Unicode指令集注册域名(只需稍加改动,以防止歧义和滥用) 路径部分没有严格规定,但可以对路径中的任意字符串进行编码。浏览器可以选择显示人类可读的渲染,而不是编码路径。但是,这需要启发式,因为无法指定路径的字符集和编码 因此,这是一个(虚构的例子,不是完全正确的)计算机可读的编码URL,可以显示给用户。域名编码为URL可以有UTF-8字符吗?,url,utf-8,character-encoding,ascii,url-encoding,Url,Utf 8,Character Encoding,Ascii,Url Encoding,我很好奇是否应该用ASCII或UTF-8编码URL。我相信URL不能有非ASCII字符,但有人告诉我他们可以有UTF-8,我四处搜索,找不到哪一个是正确的。有人知道吗?这有两个部分,但它们都是“是的” 使用,可以使用完整的Unicode指令集注册域名(只需稍加改动,以防止歧义和滥用) 路径部分没有严格规定,但可以对路径中的任意字符串进行编码。浏览器可以选择显示人类可读的渲染,而不是编码路径。但是,这需要启发式,因为无法指定路径的字符集和编码 因此,这是一个(虚构的例子,不是完全正确的)计算机可读
xn--msic-0ra。例如
中的某个名称,路径包含标签“motörhead”编码为UTF-8,URL编码(Unicode代码点用UTF-8中的两个字节0xC3 0xB6表示)
路径也可以是mot%F6rhead
,它与拉丁语-1中的标签相同。在这种情况下,推断出一个合理的人类可读的表示形式会困难得多,但也许周围角色的上下文可以提供足够的线索来进行良好的猜测
单独来看,%F6
几乎可以是任何东西,%C3%B6
可以是例如UTF-16。您在编写“UTF-8”时可能指的是“Unicode”。不管怎样,这都不会从根本上改变我的答案。事实上,它们都等于“不”。域和URL都不能包含任何非ASCII字符。但是,存在将任意字符编码为ASCII(百分比编码和punycode)…+1@deceze(-:嗯,是的。规范URL不包含Unicode。但IDNA的工作尤其是定义和启用人性化的半规范表示。可能重复