Разница между кодировками CP1251 и UTF-8 заключается в используемом наборе символов. 12
CP1251 — это стандартная 8-битная кодировка для всех русских версий Microsoft Windows. 12 Она содержит практически все символы, использующиеся в русской типографике для обычного текста, а также символы для близких к русскому языку языков: украинского, белорусского, сербского и болгарского. 1
UTF-8 — это кодировка, реализующая представление Юникода, совместимое с 8-битным кодированием текста. 12 Она позволяет работать одновременно с несколькими языками, то есть выдавать тексты, в которых используются символы разных алфавитов и даже иероглифы. 1
Кроме того, UTF-8 — это многобайтовая кодировка, а CP1251 — однобайтовая. 2 То есть символ в UTF-8 может кодироваться несколькими байтами, а для русского языка, например, символ занимает 2 байта. 1