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


Присутствуют сообщения из эхоконференции RU.GOLDED с датами от 16 Jul 13 03:28:02 до 07 May 24 17:54:30, всего сообщений: 3555
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 3507 из 3555 ======================================== 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). Все права защищены.

D:\Fido\inbound>1_locale.pl
C
C

D:\Fido\inbound>chcp
Текущая кодовая страница: 866

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> кажет?

Да. Всё правильно кажет. Я уже здесь писал.


[fido@brorabbit tests]$ ./1_locale.pl
ru_RU.IBM866

[ustasm@brorabbit ~]$ /home/fido/perl/tests/1_locale.pl
ru_RU.UTF-8

Have nice nights.
       Stas Mishchenkov.

--- А стоит ли идти к психиатру, спросил я себя. Мнения разделились.
* Origin: Lame Users Breeding. Simferopol, Crimea. (2:460/5858)

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