Чтобы не было танцев с бубном, то проще использовать UTF-32, тогда все коды будут помещаться в одно 32-битное значение. Будет проще работать, в каких-то местах.
Или же использовать UTF-8, тогда все символы будут иметь разную длину, но так как это будет во всей системе, то поддержка этого будет реализована и протестирована.