javascript - 带有元音变音 (ü) 的域上的 location.href 报告不同的域
问题描述
访问以下域: https://obs.bürgerhaus.de
在浏览器控制台中,如果我选中document.location.href
,我会返回以下内容:
> document.location.href
"https://obs.xn--brgerhaus-q9a.de/"
为什么这个值与实际域不同?这是某种类型的 url 编码还是什么?如何获得带有变音符号的原始域?
解决方案
执行查找服务以将用户友好名称转换为网络地址以定位 Internet 资源的域名系统在实践1中被限制为使用 ASCII 字符,这是最初为可接受的域名设定标准的实际限制。
(见:https ://en.wikipedia.org/wiki/Internationalized_domain_name )
正如文章所说,我们每天使用的域在技术上仅限于 ASCII 字符,以支持更多字符 unicode 域被编码为所谓的Punycode
(参见 RFC:https ://www.ietf.org/rfc/rfc3492.txt )
访问带有元音变音(或类似)的网站将迫使浏览器对其进行编码。例如,http://öbb.at转换为http://xn--bb-eka.at。转换后的形式称为 ASCII 兼容编码 (ACE),由四个字符前缀 (xn--) 和 Unicode 字符的 punycode 表示组成。在此处查看更多详细信息...
要将其解析回来,您可以查看:
推荐阅读
- java - 如何将 JLabel 定位在北方但不完全位于顶部?
- javascript - 如何更改 discord.js 中角色的权限?
- ruby-on-rails-5 - 如何选择模型字段来表示活动管理仪表板上的多对一关系?
- c# - C# Blazor:如何使用 e.preventDefault() 防止在 JS 中输入特定键?
- javascript - 我原以为我只会得到一行结果,但我得到了三行结果
- algorithm - 八度斐波那契数列
- javascript - 如何获取变量的值?
- php - 使用 php 在网页 (https) 上搜索特定单词或句子
- verilog - Verilog 编译器如何解释加法
- r - 是否有一个 R 函数来连接由 geom_() 对象创建的分组数据点?