Чтобы быстро ответить на ваши конкретные вопросы.
1: Определенная комбинация бит представляет собой определенный символ. Один символ может храниться в нескольких байтах.
2: Краткая информация и отличия между указанными вами кодировками.
ASCII
Включает определения для 128 символов.
ANSI
имеет больше символов, чем ASCII, но по-прежнему помещается в октета. Требуется кодовая страница.
UTF-8
Это может использоваться для представления любого символа Unicode. Есть много других символов Unicode, чем ASCII. Он хранит каждый символ в одном-четырех октетах данных.
UTF-16
Подобно UTF-8, но основная единица составляет 16 бит. Если вы просто используете английский, вы тратите 8 бит на каждого персонажа.
3: Кодовая страница - это то, что указывает на компьютер, который (комбинация бит) относится к какому символу. Unicode не нуждается в кодовых страницах, поскольку каждый символ имеет собственную уникальную битовую комбинацию. ANSI имеет кодовые страницы, так как имеет только 256 доступных символов.Например, если бы вы были на арабском компьютере, у вас был бы арабский набор в качестве кодовой страницы, и арабские символы могли отображаться.
4: Метод преобразования зависит от набора символов, который вы конвертируете в и из, и используемых кодовых страниц (если есть). Некоторые преобразования могут быть невозможны. UTF-8 обратно совместим с ASCII, то есть если ваш текст содержит только первые 128 символов США, он точно такой же, как тот же текст в кодировке ASCII.
Этот ответ был ad-hoc и могут быть ошибки, исправления приветствуются.
Связанный вопрос (большинство голосов в теге unicode): http://stackoverflow.com/questions/222386 – mghie