Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.GOLDED
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.GOLDED с датами от 16 Jul 13 03:28:02 до 16 Nov 24 03:28:00, всего сообщений: 3632
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 3506 из 3632 ======================================== RU.GOLDED =
От   : Vitaliy Aksyonov                 1:104/117          15 Mar 24 08:38:38
Кому : Stas Mishchenkov                                    15 Mar 24 08:38:38
Тема : Re: В консольном режиме Linux даже при выборе кодировки UTF-8 вместо ки
FGHI : area://RU.GOLDED?msgid=1:104/117+65f45e53
На   : area://RU.GOLDED?msgid=2:460/5858+65f3f586
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://RU.GOLDED?msgid=2:460/5858+65f47128
==============================================================================
Привет, Stas!

15 Mar 24 10:04, ты писал(а) мне:

VA>>>>>>> Интересно, как он определяет локальную кодировку на венде.
VA>>>>>>> :)

SM>>> [...skipped...]

VA>>>> Надо чтобы он брал из setlocale(LC_что-то, NULL). И это будет
VA>>>> работать везде, где есть setlocale. А есть оно почти везде.

SM>>> $locale = setlocale(LC_CTYPE);


SM> [...skipped...]

SM>>> Не работает.

VA>> Ты неправильно её готовишь. Я тоже на это наступил. Надо
VA>> внимательнее читать документацию. :)

SM> # query and save the old locale
SM> $old_locale = setlocale(LC_CTYPE);

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.

Это именно то, что надо. Когда вызываешь setlocale(LC_CTYPE, NULL), то оно возвращает ранее выставленную локаль. А так, как ты её явно не выставлял, то и возвращается "C".

VA>> Попробуй так: setlocale(LC_CTYPE, "");

SM> Та же фигня, только в левой руке.

Этот вариант как раз меняет локаль с "C" на то, что настроено в системе. Почему оно у тебя возвращает "C", это вопрос.

Я не перлом пробовал правда, но не думаю, что есть какая-то разница, ведь перл тупо вызывает ту же системную функцию.

VA>> В твоём варианте оно возвращает текущую для процесса. А так, как
VA>> она ранее не была выставлена, то и возвращает C. Мой вариант как
VA>> раз выставляет локаль используя LANG и другие переменные и
VA>> возвращает тебе то, что наделал.

SM> Судя по доке, пустая строка должна вызвать ресет локали на дефаулт.

Именно. А он берется из тех же $LANG и так далее.

SM> Да, это я проверял для

SM> D:\Fido\inbound>ver Microsoft Windows [Version 10.0.19045.4170]

SM> В семёрке оно, кажется, работало иначе.

Да одинаково оно работает. Просто в венде локаль странная.

Пробовал тот же скрипт ради интереса под линуксом запустить? Что кажет?

Best regards,
Vitaliy Aksyonov.

... Почему все дуры такие женщины?
--- GoldED+/LNX 1.1.5-b20240305-beta
* Origin: Aurora, Colorado (1:104/117)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.029958 секунды