我怎样才能把IDN转换成bash中的Punycode?

将IDN(如президент.рф)转换为bash中的Punycode最简单的方法是什么?

看看idn

 [U] net-dns/libidn Available versions: 1.22 (~)1.22-r1 {doc elibc_FreeBSD emacs java mono nls static-libs} Installed versions: 1.22(03:12:19 PM 07/04/2011)(nls static-libs -doc -elibc_FreeBSD -emacs -java -mono) Homepage: http://www.gnu.org/software/libidn/ Description: Internationalized Domain Names (IDN) implementation 

例如:

 $ echo "президент.рф" | idn xn--d1abbgf6aiiy.xn--p1ai 

假设你的系统上有python, python -c 'import sys;print sys.argv[1].decode("utf-8").encode("idna")' "президент.рф"就可以了。

在MacOS中brew install homebrew/versions/libidn2

然后echo "президент.рф" | idn2 echo "президент.рф" | idn2