До Unicode это обрабатывалось «кодовыми страницами», вы можете думать о кодовой странице как о сопоставлении между символами Unicode и 256 значениями, которые могут помещаться в один байт (очевидно, в каждой кодовой странице большинство символов Unicode отсутствуют).
Исходная кодовая страница ASCII включает только английские буквы - но вряд ли кто-то действительно захочет получить исходную 7-битную кодовую страницу, они, вероятно, вызовут любой 8-битный набор символов ASCII.
Английская кодовая страница, известная как Latin-1, называется ISO-8859-1 или Windows-1252 (первая - это стандарт ISO, вторая - самая близкая кодовая страница, поддерживаемая Windows).
Для поддержки символов не на латинице-1 вам необходимо кодировать, используя разные кодовые страницы, например:
874 — Thai
932 — Japanese
936 — Chinese (simplified) (PRC, Singapore)
949 — Korean
950 — Chinese (traditional) (Taiwan, Hong Kong)
1250 — Latin (Central European languages)
1251 — Cyrillic
1252 — Latin (Western European languages)
1253 — Greek
1254 — Turkish
1255 — Hebrew
1256 — Arabic
1257 — Latin (Baltic languages)
1258 — Vietnamese
UTF-8 - это нечто совершенно иное, он кодирует весь набор символов Юникода, используя переменное число байтов на символы, цифры и английские буквы кодируются так же, как ASCII (и Windows-1252), большинство других языков кодируются как 2 до 4 байтов на символ.
UTF-8 в основном совместим с системами ASCII, поскольку английский кодируется так же, как ASCII, и в строках нет встроенных нулей.
Преобразование между строками .net (UTF-16LE) и другими кодировками выполняется классом System.Text.Encoding.
ВАЖНОЕ ПРИМЕЧАНИЕ: самое главное, что система на принимающей стороне будет использовать ту же кодовую страницу и систему на стороне отправителя - в противном случае вы получите бред.