Как уже сказал Джон, существует только одно представление UTF-8, соответствующее стандартам.
Но самый сложный момент - это соответствие стандартам.
Старые кодеры обычно не могут должным образом преобразовать UTF-16 из-за суррогатов.
Java - один известный случай тех несоответствующих преобразователей (это произведет две последовательности с 3 байтами вместо одной последовательности с 4 байтами).
У MySQL были проблемы до недавнего времени, и я не уверен насчет текущего статуса.
Теперь у вас будут проблемы только с кодовыми точками, которым нужны суррогаты, то есть выше U + FFFF. Если ваше приложение долгое время оставалось без Unicode, это значит, что вам никогда не приходилось перемещать такие «эзотерические» символы: -)
Но хорошо, чтобы все было правильно с самого начала.
Попробуйте использовать кодеры, соответствующие стандартам, и все будет в порядке.