Я не знаю точных цифр, но для японского языка Shift_JIS имеет в среднем меньше байтов на символ, чем UTF-8, как и EUC-JP, так как они оптимизированы для текста на японском языке. Однако они не охватывают то же пространство кодов, что и Unicode, поэтому они могут быть неверными ответами на ваш вопрос.
UTF-16 лучше, чем UTF-8 для японских символов (2 байта на символ в отличие от 3), но хуже, чем UTF-8, если в нем много 7-битных символов. Это зависит от контекста - технический текст, скорее всего, будет содержать много символов в 1-байтовом диапазоне. Классический японский текст может не иметь никакого.
Обратите внимание, что для транспорта кодировка не имеет большого значения, если вы можете сжать (gzip, bz2) данные. Кодовые точки для алфавита в Юникоде расположены близко друг к другу, поэтому можно ожидать общих префиксов с очень короткими представлениями в сжатых данных.
UTF-8 обычно подходит для представления в памяти, поскольку он часто более компактен, чем UTF-32 или UTF-16, и совместим с функциями на char *, которые «ожидают» ASCII или ISO-8859-1 с NUL-завершением строки. Однако бесполезно, если вам нужен произвольный доступ к символам по индексу.
Если вам не нужны символы, отличные от BMP, UCS-2 всегда составляет 2 байта на символ и предлагает произвольный доступ. Но это зависит от того, что вы подразумеваете под «Юникод».