UTF - это определенный тип кодирования с несколькими различными размерами. Каждый тип кодировки определяет, сколько памяти и какое представление в этой памяти занимают символы.
Обычно мы работаем с Unicode и Ascii.
Юникод равен 2 байта на символ.
Ascii равен 1 байту на символ.
Ascii можно представить в юникоде. однако Unicode не может быть представлен в ascii без кодирования.
Кодировка UTF использует специальный символ "%", чтобы сообщить вам, что ниже приведено шестнадцатеричное значение закодированного символа.
Например,
% 20 - это символ 32, который на самом деле является пробелом.
http://www.google.com?q=space%20character
размещение этого URL в браузере будет UTF-8 декодировать эту строку, а q = будет фактически интерпретироваться как «пробел», заметьте, что% 20 теперь является пробелом.
UTF-16 использует 2 байта и представляется как таковой.
http://www.google.com?q=space%0020character
этот пример действительно потерпит неудачу, так как URI фактически должен использовать UTF-8, но этот пример демонстрирует эту точку.
Символ Unicode будет 0020 или два байта со значениями 0 и 32 соответственно.
Мандарин - это какой-то тип символов Юникода, а UTF-16 будет кодировать Юникод, чтобы его можно было представить в Ascii.
Вот статья в вики, объясняющая немного больше
http://en.wikipedia.org/wiki/UTF-8