support non-ascii character id generation