История изменений
Исправление fsb4000, (текущая версия) :
Что ж там раньше было-то?
Смотря для чего.
Для вывода текста различных стран был UTF-16, начиная с Windows NT 4.0(или даже более ранних версий Windows NT), когда Linux или FreeBSD о UTF даже не мечтал.
Если касается локалей, то были однобайтовые кодировки. Вид их был такой:
setlocale(LC_ALL, "ru-RU"); // ANSI codepage, 1251
setlocale(LC_ALL, "ru-RU.ACP"); // тоже самое, явно пишем что хотим ANSI
setlocale(LC_ALL, "ru-RU.OCP"); // OEM codepage, 866
setlocale(LC_ALL, ".866"); // ещё можно просто указывать .номер_локали
setlocale(LC_ALL, ".1251");
setlocale(LC_ALL, "С"); // ну и классические С и
setlocale(LC_ALL, ""); // и "" тоже поддерживались и поддерживаются
Как можно видеть, раньше было тире, а не подчеркивание.
В Windows 10 появились UTF-8 локали. Но это только в Windows 10 и я не помню с какой именно Windows 10. Даже в Windows Server 2016 нет UTF-8 локалей.
Исходная версия fsb4000, :
Что ж там раньше было-то?
Смотря для чего.
Для вывода текста различных стран был UTF-16, начиная с Windows NT 4.0(или даже более ранних версий Windows NT), когда Linux или FreeBSD о UTF даже не мечтал.
Если касается локалей, то были однобайтовые кодировки. Вид их был такой:
setlocale(LC_ALL, "ru-RU"); // ANSI codepage, 1251
setlocale(LC_ALL, "ru-RU.ACP"); // тоже самое, явно пишем что хотим ANSI
setlocale(LC_ALL, "ru-RU.OCP"); // OEM codepage, 866
setlocale(LC_ALL, ".866"); // ещё можно просто указывать .номер_локали
setlocale(LC_ALL, ".1251");
setlocale(LC_ALL, "С"); // ну и классические С и
setlocale(LC_ALL, ""); // и "" тоже поддерживались и поддерживаются
Как можно видеть, раньше было тире, а не подчеркивание.