问题标签 [punycode]
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.
dns - 将 punycode 与破折号字符转换为 unicode
这是参考此处页面上的此主题:
将带有破折号字符的 punycode 转换为 Unicode
//Javascript Punycode 转换器源自 RFC3492 中的示例。
我不知道在哪里放置输入的清华大学.cn 域才能使 Javascript 工作。我不是一个真正的程序员。
如果可能,我想使用此页面上的 js 代码将 IDN 域名转换为 penycode。我正在使用 ColdFusion html 页面来处理 JS。然后我将 penycode 保存到我们的 SQL 数据库中。
示例:清华大学.cn 需要转成penycode。
我可以使用任意数量的在线转换器,但这无济于事。它必须通过脚本自动化。仅供参考,清华大学.cn的penycode是xn--xkry9kk1bz66a.cn。
这是我的问题:即使将js代码复制到Dreamweaver中,我也不知道将域名清华大学.cn放在哪里才能转换成Javascript代码。我看不到输入在哪里的提示 - 如果有的话。如果有一些关于从哪里开始的提示,我可以把事情弄清楚。
我只需要知道在哪里放置输入或有人告诉我这不能使用该页面上的 Javascript 示例来完成。
我们正在建设中的域市场网站上使用 ColdFusion 19 和 SQL。我们希望接受要列出的 IDN 域,我希望您的 JS 会做我想做的事。
如果我完全错了,那么也许有人可以建议另一个将域转换为正确 penycode 的 js 代码。
c# - 使用 Unicode 主机名的 DNS 解析失败
最近,我们的一些客户出现了一个奇怪的错误。在深入研究了统一的开发人员控制台构建提供的日志之后,我遇到了以下错误:SocketException: Could not resolve host 'ן§¹ב· ו·©'
我已经将此错误追溯到这行代码:
其中host是一个 IPHostEntry 对象。这基本上只是为了最终获得客户端 IP,但由以前的程序员编写,不再在这里工作。
我不是 100% 确定在错误日志中如何处理这个主机名。据我所知, Dns.GetHostName() 本质上会返回您的机器名称,因为 DNS 可以识别它,但对于这个特定的客户端,它看起来会返回某种乱码。
我们来自以色列,那么客户端机器是否有可能以希伯来语命名,因此 Dns.GetHostEntry() 无法解析字符?
javascript - 在 Node.js 中使用 Unicode 字符解码 HTTP 标头
我有一个使用以下cors
中间件配置运行的 Express 服务器:
(xn--80adfecflqzagb7a3ioc.xn--j1amh
是 Punycode 的表示щоденниквражень.укр
)
我已从https://щоденниквражень.укр托管的页面向https://api.щоденниквражень.укр提出请求。大多数浏览器在Origin
标头中发送 Punycode 表示,这可以按预期工作。
但是 IE11 发送原始的https://щоденниквражень.укр
. 它应该与列表中的第二个正则表达式匹配,但在服务器端,我从req.headers.origin
:
获得以下标头值
Origin: https://Ñ Ð¾Ð´ÐµÐ½Ð½Ð¸ÐºÐ²ÑаженÑ.ÑкÑ
,显然,它无法匹配任何正则表达式(某些字符可能显示不正确,但你明白了 -字符集是错误的)。
有可能解决这个问题吗?我想我可能应该设置编码 - 但我不知道在哪里做以及选择哪一个。任何帮助表示赞赏!
url - 在 URL 中显示 Punycode 而不是 Unicode
有问题的域是amammerɛ.net。Punycode:xn--ammer-1dd.net。但是当我加载站点时 xn--amammer-1dd.net 显示而不是 amammerɛ.net?请问这是为什么?我是 IDN 的新手,但我想在我的域中包含特殊字符。请任何人都可以帮助我,因为有一些网址显示特殊字符,但我的没有显示它们?
例如这个网站:https://www.tubarão.com/显示的是特殊字符而不是 punycode。
java - Java Punycode 字符串
我想对字符串进行 punycode 以使用 bouncycastle 生成 csr。这里我需要域名的字节表示。例如
我的问题是:如何正确编码www..tld。我以为我可以使用IDN.toASCII(domain).getBytes()
. 不幸的是,这失败了:
javascript - 有什么方法可以正确显示 IDN?
我制作了一个投资组合网站,并选择使用带有西里尔字符的域。可悲的是,它被显示为“xn--80afg8d.me”,丑得要命。
有什么方法可以让浏览器正确显示吗?其他 IDN(如日本 IDN)是否也会发生同样的情况?
node.js - Nodejs 检测 punycode IDN 语言
我知道有诸如bestiejs/punycode.js或NodeJS PunnyCode 之类的库来转换 punycode,但我找不到任何检测 punycode 语言(Geek、中文等)的库。
是否可以本地检测 punycode 语言,或者它必须使用不同的软件来检测语言。
此外,是否有任何 NodeJs 库可用于 punycode 语言检测?
node.js - punycode 在 npm 中已弃用 - 我应该用什么替换它?
我punycode
在我的 Angular 项目中使用 npm 模块。VsCode 告诉我它已被弃用,并且https://nodejs.org/api/punycode.html#punycode_punycode
确认:
建议是切换到 'userland-provided' 模块。那是什么?
有一个指向https://github.com/mathiasbynens/punycode.js的链接,我尝试将它包含在我的 package.json instad of 'punycode' 中,但我得到了同样的错误。
security - 为什么包含一个表情符号的域会将我重定向到其他不安全和现有的站点?
我在 vim 中编辑文本,然后输入gx
播放按钮表情符号以将其作为 url 打开并查看会发生什么。Vim 将 UTF-8 表情符号翻译成 punycode 表情符号,并将其包装成我的浏览器的 url 格式:xn--g1h.com。该请求已被重定向到另一个站点:anti666.com,这非常令人毛骨悚然。当然,该网站是未经认证的。
我尝试使用两种不同的浏览器(firefox 和 chromium)将其他表情符号的 punycode 包装成相同的 url 格式(www. <punicode emoji> .com),但我没有注意到它们之间的结果有任何差异。
有时我得到 404 错误,有时它把我带到其他未经认证的网站。再举一个例子,xn--c1yn36f.com将我重定向到1redirb.com/.../...。我没有进一步尝试,因为我认为这可能有风险。
我认为这些是重定向而不是别名或其他什么,因为我对whois.com进行了研究,但这只是我自己的猜测。
我的问题是:这种重定向是如何可能的以及为什么会发生这种情况?这些域真的存在还是有其他解释?我希望我的浏览器会抛出一个错误,而不是将我重定向到另一个不安全的站点。
谢谢。
c# - DotNet 5.0 IdnMapping.GetAscii 抛出 ArgumentException
我写了一个示例控制台应用程序:
- 获取当前的 DotNet 版本
- 然后从拉丁字符串中获取 ASCII(每个标签长度等于或小于 63 个符号,总字符串长度(包括点)为 254 个符号)
当我在 .Net Core 3.1 上运行程序时,输出是:
当我在 .Net 5.0 上运行程序时,输出是:
用于 IdnMapping 的 DotNet 5 中是否有任何重大更改?输入字符串应该有什么要求?