问题标签 [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.
mod-rewrite - 如何将 s 域名重写为原始 IDN 而不是 punycode?
我购买了一个非拉丁字符的 IDN 域名。这很好,但是当我访问域名时,地址栏会显示该域的 punycode,而不是任何用户都难以记住的实际域。
无论如何我可以将域名重写为原始IDN而不是punycode?
示例:IDN =افلاماونلاين.com
地址栏中显示的 punycode =xn--mgbaaa1ksacgkcs1a.com
php - 是否可以在没有国际扩展名的情况下在 php 中编写我自己的 punycode 转换器?
我没有那么多控制远程服务器安装扩展,php是5.3.8。但我注意到可以用 pcre 拆分 utf-8 字符串。
例如:preg_split('@@u','bücher',-1,PREG_SPLIT_NO_EMPTY);
给出:Array ( [0] => b, [1] => ├╝, [2] => c, [3] => h, [4] => e, [5] => r )
或者对于中文单词:中国/中华它给出:Array ( [0] => ńŞş, [1] => ňŤŻ, [2] => /, [3] => ńŞş, [4] => ňŹÄ )
(结果来自非 unicode 显示),但很明显,可以在utf-8
没有国际扩展名的情况下拆分字符串,然后(我认为)应该可以获取字符代码并使用它们进行计算以创建 ascii url。
delphi - Delphi:Punicode 解码
找到以 Punycode: Cyrillic domain name编码的信息,但是我该如何解码(西里尔文中的 punycode)?
database-design - IDNA 转换域名的最大长度是多少?
第一件事:
在将每个域名转换为其 IDNA 版本之后,我将多个域存储到数据库中。我需要知道这样一个 IDNA 转换的域名可以具有的最大长度,以便我可以定义数据库字段的最大长度。
已知事实:
现在,我知道域名(包括任何子域)中的最大字符数是 255 个字符。
我丢的地方:
乍一看很容易,但是……这是否意味着国际字符的常规 ascii 字符(想想 UTF-8 编码)?
举个例子:当我忽略“ü”是一个需要更多字节来表示的国际字符时,域“müller.de”有 9 个字符。“müller.de”的 IDNA 版本是“xn--mller-kva.de”,它有 16 个字符。这表明最大长度肯定存在差异,具体取决于“是否”它是否被 IDNA 转换。
根据它们所指的字符类型,最多 255 个字符可能是国际字符版本、IDNA 转换版本,甚至两者兼而有之。
这就是我失去它的地方......尤其是,因为我必须考虑到并非所有域都是理智的,并且像“öüßüöäéèê.example.äöüßüöäéèê-äöüßüöäéèêê.test.äöüßüöäéèêêê.com”之类的东西更糟糕的是被期望。
因此,“猜测”和“希望最好”不是一种选择。我需要确定...
问题是:
基于已知的事实,域名(包括任何子域)中的最大字符数为 255 个字符...... IDNA 转换域名的最大长度是多少?
或者他们是否意味着 IDNA 转换版本(punycode)也被限制为 255 个字符(这意味着具有国际/unicode 字符的域实际上在其 unicode 表示中的限制更短,因为他们的 IDNA 转换版本必须尊重 255 个字符限制)?
facebook-social-plugins - 像带有 punycode 的 url 中的 Box 一样吗?
我正在尝试从这个 url 制作一个 Like Box:http://www.facebook.com/pages/I-karriären/238394972905409?sk=wall 我尝试从 facebook 开发者页面生成代码:http://developers。 facebook.com/docs/reference/plugins/like-box/ 但只收到此消息“无法检索指定页面的 id。请验证是否传入了正确的 href。” 我还尝试了 punycode 格式的网址;http://www.facebook.com/pages/xn--I-karriren-w5a/238394972905409?sk=wall 但仍然收到相同的消息。有什么问题?这不是个人页面。
python - IDNA 不往返
我有一些无法解码的 IDNA 编码字符串。在 Python 中,我尝试u"xn--grohandel-shop-2fb".decode("idna")
得到错误“IDNA 不往返”。对于"xn--sottmqqo5-lgbe9b7no0hmz9u"
.
我很困惑,谷歌搜索错误根本没有帮助。
browser - 浏览器是否仅在 punycode 域或整个 url 中编码?
我正在阅读有关 IDN 同形异义词攻击的信息,但没有准确说明浏览器是否仅在 punycode 域中编码或包含 URL 的其余部分(路径和查询)。所以我的问题是流行的浏览器之一(FF、IE、Chrome、Safari、Opera)是否使用 punycode 对 URL 的其余部分(确切地说是 IRI)进行编码?
url - 有什么方法可以避免在 IDN 域中显示“xn--”?
如果我使用诸如www.äöü.com 之类的域,有什么方法可以避免它在用户的浏览器中显示为www.xn--4ca0bs.com ?
我猜,像www.xn--4ca0bs.com这样的域名会引起普通互联网用户的很多困惑。
php - 改进正则表达式模式以验证 ipv6 / punycode / 外国域名
我目前使用此正则表达式模式在将域名添加到我的数据库之前对其进行验证:
此模式允许子域、ipv4 字符串等。由于这是针对目录的,因此它不允许通常有效的字符串,例如http://localhost
但无论如何,我需要添加的是对 ipv6 IP 字符串和国际域名的支持,例如例如 müller.com
我目前使用:
它验证了我想要验证的几乎所有内容,除了 ipv6 地址和外来字符。
我想知道是否有人能够提出这两个补充,因为它真的会让我很开心。请注意,我对 PHP 非常陌生,所以请不要向我扔东西。相反,如果您可以向我展示一个工作示例并解释您添加的内容,那将会更加有用。
也许需要在检查之前将外国内容转换为有效的 punycode URL,然后改为允许 punycode。我愿意接受建议。
非常感谢 - 非常感谢您的帮助
编辑:我怀疑这个问题是重复的,因为我不是在寻找类似的解决方案,而且提到的现有解决方案不起作用。FILTER_VALIDATE_URL 不起作用,因为它将允许我不想允许的字符串,并且其他解决方案也使我的正则表达式模式无用。
我正在寻找的是我所拥有的,但还支持 ipv6 IP 字符串和 punycode 名称/国际名称。
c# - 使用c#将微不足道的代码转换为unicode?
可能重复:
C# 中的 Punycode 转换器
我正在寻找使用 C# 将微不足道的代码转换为 unicode。
我确实遇到了一些 js,包括这个名为“punycode.js”的 js以及关于 SO 的这个问题。
但我的要求是使用 C# 做同样的事情,原因是
我正在制作WEB API,需要使用C#来做这个转换操作,然后通过API返回数据..所以没有JS
请分享您对此的看法。