问题标签 [idn]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
regex - IDN 域名的正则表达式匹配
我想用正则表达式检查域。我使用了这段代码,但它不起作用:
我的域格式是:
example.com
我不想要:
www.example.com
http://example.com
http://www.example.com
同时,用户可以添加域;
- 有2个扩展名
example.co.uk
- 作为一个 IDN
üüüüüü.üüü
php - 使用正则表达式进行 IDN(域)验证
我想用正则表达式(regex)检查一些域。我的旧代码是:
它可以工作,但此代码不会验证 öü.com 或 öü.öü 等 IDN(国际化域名),也不会检查“www”、“http://”术语。
我的域格式是:
- 例子.com
此外,我不想要:
- www.example.com
- http://example.com
- http://www.example.com
重要提示:用户可以添加域;
- 带有 2 个扩展名,例如 example.co.uk
html - IDN 在 src 属性中是有效的还是必须是 Punycode 编码的?
在 UTF-8 编码的 HTML 文档中,使用IDN作为值src
和href
属性是否有效?
是否存在强制使用 Punycode 编码版本的反对意见?
我不确定现代用户代理是否将 ahref
视为“<a href="http://www.ietf.org/rfc/rfc3490.txt" rel="nofollow">IDN-unaware domain name slot”。
http - 重定向时,应如何在 Location 标头中发送国际化域名 (IDNA)?
具有国际化域名的网站通常希望使用重定向状态代码 (3XX) 响应 HTTP 请求。当他们这样做时,他们会希望将重定向目标放在Location
标题中。
如果网站想在标头中使用绝对 URI Location
,他们应该如何提供他们的域名?具体来说,是否应该进行 IDNA 编码?
(我假设如果它不是 IDNA 编码的,它应该使用 RFC 2047 编码,但如果这是错误的,请告诉我。)
php - 执行简单的 php 脚本时 php 和 php-cli 的结果不同
我尝试使用 OS (Ubuntu) 中的 idn 函数将国际化域名 (IDN) 转换为其等效的 punycode。这是我的简单脚本:
此代码无法在我的浏览器中运行,$out 是一个空数组并且 $var = 1(猜测有错误)。但是当我用 php-cli 运行代码时,一切都很好,结果应该是:
你有什么线索吗?
azure - Azure 站点上的自定义 IDN(国际化域名)上的 404
将 punyencoded IDN 名称添加到自定义域列表中效果很好,但我的服务器不响应请求,而是收到默认 Azure 错误“404 - 未找到网站!” 页面(表明请求至少发送到 Azure)。
有谁知道是否有办法让它工作?
facebook - Open Graph / Facebook:通过在 Facebook 上发布来保留 IDN URL 而不是 ACE 字符串
我有一个带有德语“元音变音”(德语特殊字符)的国际域名。
在 Facebook 上发布/链接时,原始域名 (IDN) 在链接的服务器目标的底部显示为 ACE 字符串(可能用于 DNS 的“翻译” URL,没有特殊的德语字符)。
是否可以通过向 facebook 传递一些特殊的 (og:url) 来保留 IDN,以告知必须使用 IDN 而不是 ACE 字符串?从技术上讲,它不需要翻译成 ACE。
我不希望显示翻译的内容,因为客户可能会被激怒。
谢谢你。克里斯
php - punycode 和 .рф 西里尔文域重定向
我有一个带有西里尔域名的网站。有一个授权库将用户重定向到登录页面,但 url 不知何故格式错误。
该网站在 CodeIgniter 上,使用的重定向功能是 codeigniter 的标准重定向功能。我做了一些修改,现在看起来像这样
idn_to_ascii 函数似乎没有正确编码 UTF url 字符串......
任何人都可以暗示解决方案吗?
代替
我明白了
有任何想法吗 ?
python - 使用 libcurl 的 URL 延长器:IRI/IDN 和片段问题
我正在尝试通过 pycURL 使用 libcurl 编写 URL 延长器(如果您不知道 pycURL 不会消失,这是一个 libcurl 问题)。
URL 延长器与 URL 缩短器相反:目的是在没有任何重定向的情况下获得最终 URL,因此我们可以获得链接的真实域。
这是显示我正在尝试做的代码:
有多个问题:
libcURL 似乎无法处理 IRI 或 IDN。在上面代码中给出的情况下,URL 应该被拉长为
https://fr.wikipedia.org/wiki/Colonne_Vendôme
,但 libcurl 返回https://fr.wikipedia.org/wiki/Colonne_Vendme
。我想你可以看出区别。我知道这些 URL 不符合 RFC,但它们很流行,所以我必须能够管理它们。所以我的问题是:
有没有办法强制 libcURL 理解这些 URL?有没有办法强制编码?有没有办法在请求对 URL 进行编码之间工作?URL 片段或锚点 (#) 也存在问题。如果最终 URL 包含一个片段,libcurl 会在返回答案之前对其进行修剪。它以 HTTP 方式有意义,因为不应该将任何片段发送到服务器,但我当然需要这些部分。不是因为锚点很重要,而是因为如果这个 URL
http://goo.gl/I8AYpW
被拉长到https://groups.google.com/forum/
它绝对没用。所以我的问题是:
有没有办法在最后得到片段?有没有办法获取最后请求的 URL(所以,使用片段)?再一次,有没有办法在请求之间工作以保存最终片段?有一些站点不适用于这种延长器。像那些网站一样:
http://t.co/Gej1JY3sgf
返回一个带有空响应的 HTTP 301,但在浏览器中工作
http://t.co/3Ek7U438Ee
返回一个 HTTP 303,但在浏览器
http://tinyurl.com/lvyapao
中工作不会被拉长(如任何 tinyurl)。
你对这些有什么建议或提示吗?
我正在寻找的是做好的代码。所以我不喜欢权宜之计,但如果没有其他解决方案,我会使用那些。如果你告诉我有比 libcurl 更好的方法,我可以废弃 pycURL。但我不能废弃 Python。
所以,如果你有什么,我会接受的。我不知道现在该做什么。
编辑 :
最后,更新:
对于这个,Twitter 上有一个安全问题。我试图延长 t.co URL,但如果您使用 wget/curl/etc,Twitter 不会返回相同的 URL。东西与 HTTP/JS 的东西。由于这是一个安全问题,我赢得了赏金,但直到一周前才说出来:https ://hackerone.com/reports/34084
对于这个,下面的答案解决了我的问题。这就是为什么他赢了。
没有针对此问题的全局解决方案,因为必须逐案处理。
visual-c++ - IdnToAscii 链接器错误
我正在尝试在我的代码中使用 IdnToAscii。根据msdn
http://msdn.microsoft.com/en-us/library/windows/desktop/dd318149(v=vs.85).aspx
我只需要kernel32.dll。但是我在尝试构建时收到链接错误:
错误 1 错误 LNK2019:函数 _wmain 中引用的未解析的外部符号 __imp__IdnToAscii@20。
将 normaliz.lib 包含到项目中可以解决该问题。
问题是为什么我必须包括它。是 msdn 文档不匹配还是我遗漏了什么。
谢谢