问题标签 [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.

0 投票
0 回答
48 浏览

regex - IDN 域名的正则表达式匹配

我想用正则表达式检查域。我使用了这段代码,但它不起作用:

我的域格式是:

  • example.com

我不想要:

  • www.example.com
  • http://example.com
  • http://www.example.com

同时,用户可以添加域;

  • 有2个扩展名example.co.uk
  • 作为一个 IDNüüüüüü.üüü
0 投票
0 回答
501 浏览

php - 使用正则表达式进行 IDN(域)验证

我想用正则表达式(regex)检查一些域。我的旧代码是:

它可以工作,但此代码不会验证 öü.com 或 öü.öü 等 IDN(国际化域名),也不会检查“www”、“http://”术语。

我的域格式是:

  • 例子.com

此外,我不想要:

重要提示:用户可以添加域;

  • 带有 2 个扩展名,例如 example.co.uk
0 投票
1 回答
209 浏览

html - IDN 在 src 属性中是有效的还是必须是 Punycode 编码的?

在 UTF-8 编码的 HTML 文档中,使用IDN作为值srchref属性是否有效?

是否存在强制使用 Punycode 编码版本的反对意见?

我不确定现代用户代理是否将 ahref视为“<a href="http://www.ietf.org/rfc/rfc3490.txt" rel="nofollow">IDN-unaware domain name slot”。

0 投票
1 回答
88 浏览

http - 重定向时,应如何在 Location 标头中发送国际化域名 (IDNA)?

具有国际化域名的网站通常希望使用重定向状态代码 (3XX) 响应 HTTP 请求。当他们这样做时,他们会希望将重定向目标放在Location标题中。

如果网站想在标头中使用绝对 URI Location,他们应该如何提供他们的域名?具体来说,是否应该进行 IDNA 编码?

(我假设如果它不是 IDNA 编码的,它应该使用 RFC 2047 编码,但如果这是错误的,请告诉我。)

0 投票
0 回答
55 浏览

php - 执行简单的 php 脚本时 php 和 php-cli 的结果不同

我尝试使用 OS (Ubuntu) 中的 idn 函数将国际化域名 (IDN) 转换为其等效的 punycode。这是我的简单脚本:

此代码无法在我的浏览器中运行,$out 是一个空数组并且 $var = 1(猜测有错误)。但是当我用 php-cli 运行代码时,一切都很好,结果应该是:

你有什么线索吗?

0 投票
1 回答
223 浏览

azure - Azure 站点上的自定义 IDN(国际化域名)上的 404

将 punyencoded IDN 名称添加到自定义域列表中效果很好,但我的服务器不响应请求,而是收到默认 Azure 错误“404 - 未找到网站!” 页面(表明请求至少发送到 Azure)。

有谁知道是否有办法让它工作?

0 投票
0 回答
771 浏览

facebook - Open Graph / Facebook:通过在 Facebook 上发布来保留 IDN URL 而不是 ACE 字符串

我有一个带有德语“元音变音”(德语特殊字符)的国际域名。

在 Facebook 上发布/链接时,原始域名 (IDN) 在链接的服务器目标的底部显示为 ACE 字符串(可能用于 DNS 的“翻译” URL,没有特殊的德语字符)。

是否可以通过向 facebook 传递一些特殊的 (og:url) 来保留 IDN,以告知必须使用 IDN 而不是 ACE 字符串?从技术上讲,它不需要翻译成 ACE。

我不希望显示翻译的内容,因为客户可能会被激怒。

谢谢你。克里斯

0 投票
1 回答
1070 浏览

php - punycode 和 .рф 西里尔文域重定向

我有一个带有西里尔域名的网站。有一个授权库将用户重定向到登录页面,但 url 不知何故格式错误。

该网站在 CodeIgniter 上,使用的重定向功能是 codeigniter 的标准重定向功能。我做了一些修改,现在看起来像这样

idn_to_ascii 函数似乎没有正确编码 UTF url 字符串......

任何人都可以暗示解决方案吗?

代替

我明白了

有任何想法吗 ?

0 投票
1 回答
398 浏览

python - 使用 libcurl 的 URL 延长器:IRI/IDN 和片段问题

我正在尝试通过 pycURL 使用 libcurl 编写 URL 延长器(如果您不知道 pycURL 不会消失,这是一个 libcurl 问题)。
URL 延长器与 URL 缩短器相反:目的是在没有任何重定向的情况下获得最终 URL,因此我们可以获得链接的真实域。
这是显示我正在尝试做的代码:

有多个问题:

  1. libcURL 似乎无法处理 IRI 或 IDN。在上面代码中给出的情况下,URL 应该被拉长为https://fr.wikipedia.org/wiki/Colonne_Vendôme,但 libcurl 返回https://fr.wikipedia.org/wiki/Colonne_Vend￴me。我想你可以看出区别。我知道这些 URL 不符合 RFC,但它们很流行,所以我必须能够管理它们。所以我的问题是:
    有没有办法强制 libcURL 理解这些 URL?有没有办法强制编码?有没有办法在请求对 URL 进行编码之间工作?

  2. URL 片段或锚点 (#) 也存在问题。如果最终 URL 包含一个片段,libcurl 会在返回答案之前对其进行修剪。它以 HTTP 方式有意义,因为不应该将任何片段发送到服务器,但我当然需要这些部分。不是因为锚点很重要,而是因为如果这个 URLhttp://goo.gl/I8AYpW被拉长到https://groups.google.com/forum/它绝对没用。所以我的问题是:
    有没有办法在最后得到片段?有没有办法获取最后请求的 URL(所以,使用片段)?再一次,有没有办法在请求之间工作以保存最终片段?

  3. 有一些站点不适用于这种延长器。像那些网站一样:
    http://t.co/Gej1JY3sgf返回一个带有空响应的 HTTP 301,但在浏览器中工作
    http://t.co/3Ek7U438Ee返回一个 HTTP 303,但在浏览器
    http://tinyurl.com/lvyapao中工作不会被拉长(如任何 tinyurl)。
    你对这些有什么建议或提示吗?

我正在寻找的是做好的代码。所以我不喜欢权宜之计,但如果没有其他解决方案,我会使用那些。如果你告诉我有比 libcurl 更好的方法,我可以废弃 pycURL。但我不能废弃 Python。

所以,如果你有什么,我会接受的。我不知道现在该做什么。

编辑 :

最后,更新:

  1. 对于这个,Twitter 上有一个安全问题。我试图延长 t.co URL,但如果您使用 wget/curl/etc,Twitter 不会返回相同的 URL。东西与 HTTP/JS 的东西。由于这是一个安全问题,我赢得了赏金,但直到一周前才说出来:https ://hackerone.com/reports/34084

  2. 对于这个,下面的答案解决了我的问题。这就是为什么他赢了。

  3. 没有针对此问题的全局解决方案,因为必须逐案处理。

0 投票
1 回答
476 浏览

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 文档不匹配还是我遗漏了什么。

谢谢