问题标签 [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.
xmpp - 在 RFC 6122 中指定的 JID 中的 IDN 实施
我已向RFC 6122中指定的 XMPP 客户端添加了国际域名支持。在 RFC 中它指出:
尽管 XMPP 应用程序不会通过网络传递 ToASCII 操作的输出(称为“ACE 标签”),但必须可以应用该操作而不会失败到每个国际化标签。
但是,对于我可用于测试的域(运行 Prosody 0.9.4;致力于从其他人那里获得有关 Ejabberd 如何处理此问题的反馈),在 XMPP 节的“to”字段中发送 Unicode 名称会导致他们立即返回XMPP 错误节并终止流。如果我toASCII
在发送节之前应用该操作,则连接成功,我可以开始与服务器进行身份验证。
所以发送:
会导致错误,而:
工作正常。
像这样发送域的 ASCII 表示(ACE 标签)是否正确?如果是这样,当规范说“XMPP 应用程序不通过网络传输 ToASCII 操作的输出......”时,规范是什么意思?如果不是,我如何确保与行为不端的服务器兼容?
php - idn_to_asci 错误:无法将 ... 转换为 ASCII:输出太大或太小
idn_to_ascii():无法将 http://www.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaskvaliifidqabddddddddddsdddddddddddddd.com转换 为 ASCII:输出太大或太小
网址大小有限制吗?
c# - CookieContainer 不存储国际化域名的 cookie
我正在尝试使用 WebClient 对西里尔文域执行授权。授权经历了几个阶段,在普通域和 punicode 域之间进行重定向。问题是 HttpWebRequest 无法将 cookie 存储在分配的 CookieContaier 中,如果它是由 punycode 域设置的。例如,此代码将抛出 CookieException。
设置 cookie 的响应重定向到另一个页面,即在执行 WebClient.UploadValues(...) 之后,WebClient.ResponseHeaders 中没有 cookie 信息,这一事实加剧了这个问题。
下面是正常的授权过程(使用浏览器)
有什么解决方法吗?
.htaccess - 通过 .htaccess 重定向到带有变音符号或重音符号的 URL
要通过 .htaccess 重定向到包含变音符号的新 URL,正确且安全的方法是什么?
我可以以某种方式将 .htaccess 文件设置为 UTF-8 并只使用非 ASCII 字符,例如:
redirect 301 / http://www.bücher.ch/
需要我改用 ACE 字符串,例如:
redirect 301 / http://www.xn--bcher-kva.ch/
urlencode 是要走的路吗?我尝试了以下但没有成功:
redirect 301 / http://www.b%C3%BCcher.ch/
就上下文而言,关于国际化域名 (IDN)的下一页有一个关于在域中包含重音和变音符号的技术解决方案的部分。
php - preg_match 验证非英文邮箱地址(国际域名)
我们都知道电子邮件地址验证是一个敏感的话题,关于在不编码整个 RFC 的情况下处理它的最佳方法有很多意见。但自 2009 年以来,它变得更加困难,我还没有真正看到有人解决 IDN 的问题。
这是我一直在使用的:
哪个适用于大多数电子邮件地址,但如果我需要匹配非拉丁电子邮件地址怎么办?例如:bob@china.中国,或 bob@russia.рф
在此处查看完整列表。(请注意列表底部的所有非拉丁语域扩展。)
可以在此处找到有关此主题的信息,我认为他们所说的是这些新字符将在机器级别上简单地读取为“.xn--fiqz9s”和“.xn--p1ai”,但我不是 100%当然。
如果是,这是否意味着我需要考虑在我的代码中进行以下唯一更改?(对于 .travelersinsurance 和 .sandvikcoromant 等域扩展名)
注意:这与此页面上的讨论无关使用正则表达式验证电子邮件地址
node.js - 替换 Node.js + Express.js 中的主机名以解码 punycode 域
我正在西里尔文域上开发一个网络应用程序。目前,该域托管一个“停放页面”,表示该站点正在建设中。如果我在 Chrome 中访问它,我会在地址栏中看到 punycode。不过,Safari 会对其进行解码。出于开发目的,我修改了我的/etc/hosts
文件,以便能够通过测试西里尔文域访问 localhost。但是,Chrome 和 Safari 都无法解码主机名。
我已经查找了这个问题,但找不到任何明智的解决方案。Node.js 有一个名为punycode
. 现在,如果 myreq.url
包含西里尔字符,它会被URIComponent
编码,因此我编写了一个中间件来解码它:
它工作正常,我现在可以使用西里尔文路由。但是当我尝试将此逻辑应用于主机名时,它不起作用:
很感谢任何形式的帮助。谢谢!
objective-c - WKWebView 加载带有特殊字符的网页
我有一个用作浏览器的 wkwebview。我无法加载带有特殊字符的地址,例如“ http://www.håbo.se ”(瑞典字符)。
我在用着:
这是有希望的,因为它创建了一个如下所示的地址: http://www.h%c3%a5bo.se/
如果我在 Chrome 中输入它,它就可以工作。但是当我尝试在 wkwebview 中加载它时,我得到以下信息(我可以加载所有其他页面):
这是打印的完整 NSError
vba - Excel VBA Punycode 支持国际域名(IDNA2003、IDNA2008 和 UTS46)
Excel VBA 是否为 Punycode 或转换为国际化域名的 Unicode/Ascii 提供任何类型的方法、函数或 API?
我能够找到似乎适用于 IDNA2008 标准的 JavaScript 版本(如下)。我仍然可以在 VBA 中使用它,但我认为这有点笨拙......
我尝试过的另一种方法是从在线 Punycode 转换器 ( http://www.unicode.org/cldr/utility/idna.jsp?a= ) 中抓取响应,但我真的对此并不感到疯狂,因为网站有时不可用,而且效率不高...
由于不同的网络浏览器(Internet Explorer、Firefox 和 Chrome)使用不同的标准。我需要能够使用所有标准(IDNA2003、UTS46、IDNA2008)在 Puny 之间进行转换,以便我可以生成/捕获所有可能的变化。
例如使用域“schüloß.de”我应该能够产生 2 个不同的变体:
统一码:
ASCII:
我不知道有任何 Web 对象或内置功能可以帮助处理 Punycode ...
有人会有一种可靠有效的方法来执行所有标准的 Punycode 转换吗?任何帮助将不胜感激。
附加信息:
在 Windows 7 中使用 MS Office 2013(32 位)。
该解决方案无法尝试与 Unicode 域进行通信。如果可能的话,我不反对使用 WinHttp 对象,但出于安全原因,它不能发送或尝试将传出网络流量发送到域......
不幸的是,这是需要 VBA 解决方案而无需安装外部软件的问题之一。
再次,非常感谢任何帮助!
internationalization - 我可以将所有域名都视为 IDN 而不会产生任何不良影响吗?
从测试来看,似乎尝试将 IDN 和常规域名都转换为“正常工作” - 例如,如果不需要更改输入,punycode 只会返回输入。
返回:
和
返回:
这看起来很棒,但它是否在任何地方指定?我可以安全地将所有内容转换为 punycode 吗?