例如,当我跑步时

var uts46 = require('punycode');
uts46.encode("💩⚽️🍊")


输出为:

xn--y8hw789ec0vgbfb


但是,当我在Chrome的地址栏中输入完全相同的表情符号字符串(“💩⚽️🍊”)时,它解析为

xn--y8h2559nb4a


Punycoder.com也解析为第二个字符串。

有谁知道这可能是为什么,以及如何更改punycode.js以产生Chrome字符串?

最佳答案

您可以使用idna-uts46包来获得类似Chrome的结果:

var uts46 = require('idna-uts46');
uts46.toAscii("💩⚽️🍊"); // produces "xn--y8h2559nb4a"

10-08 17:20