文字単位が大方2バイトと決まってるUTF16使うのが一番楽。

unsigned short ch = u"あa";
ch[0]; // 'あ'
ch[1]; // 'a'

UTF-8ではこうは行かない。