= Сообщение: 3507 из 3632 ======================================== RU.GOLDED = От : Stas Mishchenkov 2:460/5858 15 Mar 24 18:51:40 Кому : Vitaliy Aksyonov 15 Mar 24 18:51:40 Тема : В консольном режиме Linux даже при выборе кодировки UTF-8 вместо ки FGHI : area://RU.GOLDED?msgid=2:460/5858+65f47128 На : area://RU.GOLDED?msgid=1:104/117+65f45e53 = Кодировка сообщения определена как: CP866 ================================== Ответ: area://RU.GOLDED?msgid=1:104/117+65f4f7c1 ============================================================================== Hi Vitaliy!
15 Mar 24 08:38, Vitaliy Aksyonov -> Stas Mishchenkov:
SM>> setlocale(LC_CTYPE, ""); SM>> # LC_CTYPE now reset to the default defined by the SM>> # LC_ALL/LC_CTYPE/LANG environment variables, or to the system SM>> # default.
VA> Это именно то, что надо. Когда вызываешь setlocale(LC_CTYPE, NULL), то оно VA> возвращает ранее выставленную локаль. А так, как ты её явно не выставлял, VA> то и возвращается "C".
А GoldEd как-то иначе делает?
VA>>> Попробуй так: setlocale(LC_CTYPE, "");
SM>> Та же фигня, только в левой руке.
VA> Этот вариант как раз меняет локаль с "C" на то, что настроено в системе. VA> Почему оно у тебя возвращает "C", это вопрос.
Пробовал заслать \x00 - ваще тишину возвращает.
VA> Я не перлом пробовал правда, но не думаю, что есть какая-то разница, VA> ведь перл тупо вызывает ту же системную функцию.
Вот именно. Тот же POSIX locale_h. Запустил для чистоты эксперимента голый cmd.exe. Вот результат:
Microsoft Windows [Version 10.0.19045.4170] (c) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.
VA>>> В твоём варианте оно возвращает текущую для процесса. А так, как VA>>> она ранее не была выставлена, то и возвращает C. Мой вариант как VA>>> раз выставляет локаль используя LANG и другие переменные и VA>>> возвращает тебе то, что наделал.
SM>> Судя по доке, пустая строка должна вызвать ресет локали на дефаулт.
VA> Именно. А он берется из тех же $LANG и так далее.
Видимо, виндовс уже не такая уж и позикс совместимая.
SM>> Да, это я проверял для
SM>> D:\Fido\inbound>ver Microsoft Windows [Version 10.0.19045.4170]
SM>> В семёрке оно, кажется, работало иначе.
VA> Да одинаково оно работает. Просто в венде локаль странная.
Я про то самое. Там так не получится.
VA> Пробовал тот же скрипт ради интереса под линуксом запустить? Что VA> кажет?