Просто быть 8-битным чистым, по большей части. Однако вы должны знать, что любой не-ASCII символ разделяется на несколько байтов, поэтому вы должны принять это во внимание, если текст для переноса или усечения выводится на экран.
Преимущество UTF-8 заключается в том, что вы всегда можете определить, где находится многобайтовый символ: если установлен бит 7 и бит 6 сброшен (байт 0x80-0xBF), это завершающий байт, а если бит 7 и 6 установлены и 5 сброшены (0xC0-0xDF) это ведущий байт с одним завершающим байтом; если 7, 6 и 5 установлены и 4 сброшен (0xE0-0xEF), это ведущий байт с двумя завершающими байтами и так далее. Количество последовательных битов, установленных в старшем значащем бите, представляет собой общее количество байтов, составляющих символ. То есть:
110x xxxx = двухбайтовый символ
1110 хххх = трехбайтовый символ
1111 0xxx = четырехбайтовый символ
и т.д.
Исландский алфавит содержится в ISO 8859-1 и, следовательно, в Windows-1252. Если это приложение в режиме консоли, помните, что консоль использует кодовые страницы IBM, поэтому (в зависимости от языкового стандарта системы) она может отображаться в 437, 850 или 861 . Windows не имеет встроенной поддержки дисплея для UTF-8; Вы должны преобразовать в UTF-16 и использовать API Unicode.
Вызов SetConsoleCP и SetConsoleOutputCP с указанием кодовой страницы 1252 поможет решить вашу проблему, если это приложение в консольном режиме. К сожалению, выбранный консольный шрифт должен быть шрифтом, который поддерживает кодовую страницу, и я не вижу способа установить шрифт. Стандартные растровые шрифты поддерживают только системную кодовую страницу OEM по умолчанию.