
bash で IDN (президент.рф など) を Punycode に変換する最も簡単な方法は何ですか?
答え1
見てみましょう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
答え2
システムに Python がインストールされていると仮定すると、python -c 'import sys;print sys.argv[1].decode("utf-8").encode("idna")' "президент.рф"
うまくいくでしょう。
答え3
MacOSの場合brew install homebrew/versions/libidn2
。
それからecho "президент.рф" | idn2
。