#!/usr/bin/env python

import sys

def print_ucs2mb_one_char(ucs, mb):
    ucslen = len(ucs)
    mblen = len(mb)
    for i in range(0, ucslen):
      sys.stdout.write("<U%04X>" % ord(ucs[i]))
    sys.stdout.write(" ")
    for i in range(0, mblen):
      sys.stdout.write("\\x%02X" % ord(mb[i]))
    sys.stdout.write("\n")

def ucs2mb_plane(codeset, plane):
  for u in range(0x0000, 0x10000):
    ucs = plane << 16 | u
    try:
      mb = unichr(ucs).encode(codeset)
    except:
      continue
    print_ucs2mb_one_char(unichr(ucs), mb)

def ucs2mb(codeset):
  ucs2mb_plane(codeset, 0)
#  ucs2mb_plane(codeset, 2)

if len(sys.argv) != 2:
  print >> sys.stderr, "Usage: ucs2mb codeset"
  sys.exit(1)

ucs2mb(sys.argv[1])
