umlaut(ü)的域上的location.href报告了不同的域

时间:2019-04-05 12:43:49

标签: javascript character-encoding domain-name

访问以下域: https://obs.bürgerhaus.de

在浏览器控制台中,如果我选中document.location.href,则会返回以下内容:

> document.location.href
"https://obs.xn--brgerhaus-q9a.de/"

为什么该值与实际域不同?这是某种类型的url编码还是什么?如何获得带有变音符号的原始域名?

1 个答案:

答案 0 :(得分:1)

  

域名系统,执行查找服务以翻译   用户友好名称到网络地址中以查找Internet   资源1在实践中仅限于使用ASCII   字符,一个实际的限制,最初为   可接受的域名。

(请参阅:https://en.wikipedia.org/wiki/Internationalized_domain_name

正如文章所述,我们每天使用的域在技术上仅限于ASCII字符,以支持更多字符,Unicode域被编码为所谓的from django.urls import path from . import views urlpatterns = [ path("", views.project_index, name="project_index"), path("<int:pk>/", views.project_detail, name="project_detail"), ] (请参阅RFC:https://www.ietf.org/rfc/rfc3492.txt

使用变音符号(或类似名称)访问网站会迫使浏览器对此进行编码。例如,http://öbb.at被转换为http://xn--bb-eka.at。转换后的形式称为ASCII兼容编码(ACE),它由四个字符前缀(xn--)和Unicode字符的punycode表示组成。 See more details here ...

要解析它,您可以查看:

Punycode JS on GitHub

Solution from some - StackOverflow