著作一覧 |
#!/usr/local/bin/ruby if ARGV.length != 1 STDERR.puts 'usage: ruby u.rb 0xコード' exit 1 end ch = ARGV[0].to_i(16) u = ch - 0x10000 u0 = u >> 10 | 0xd800 u1 = u & 0x3ff | 0xdc00 printf "surrogate pair = \\u%04x \\u%04x\n", u0, u1 u = [18, 12, 6, 0].inject([]) do |r, x| r << (ch >> x & 0x3f | 0x80) end u[0] |= 0x70 printf "utf-8 = 0x%02x 0x%02x 0x%02x 0x%02x\n", u[0], u[1], u[2], u[3]実行してみる。
$ ruby u.rb 0x2a422 surrogate pair = \ud869 \udc22 utf-8 = 0xf0 0xaa 0x90 0xa2ちなみに上の字は、多分だけど、ガッツと読む。
参考にしたページ:J2SE 5.0の新機能(第21回 文字操作の変革)
WikipediaのUnicode一覧
あとは、昔ながらの方法:echo 貼り付けた文字>a; od -t x1 a
ジェズイットを見習え |