Nп/п : 54 из 100
От : Stas Mishchenkov 2:460/5858 15 мар 24 18:51:40
К : Vitaliy Aksyonov 15 мар 24 19:11:02
Тема : В консольном режиме Linux даже при выборе кодировки UTF-8 вместо ки
----------------------------------------------------------------------------------
@MSGID: 2:460/5858 65f47128
@REPLY: 1:104/117 65f45e53
@PID: GED+W64 1.1.5-b20231028
@CHRS: CP866 2
@TZUTC: 0300
@RealName: Brother Rabbit
@TID: hpt/w64-mvcdll 1.9 2023-01-07
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", это вопрос.
Пробовал заслать \0 - ваще тишину возвращает.
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)
SEEN-BY: 46/49 50/109 104/117 221/6 240/1120 250/25
267/67 301/1 341/66
SEEN-BY: 451/31 452/28 166 455/19 460/16 58 256
1124 5858 461/58 463/68 877
SEEN-BY: 463/1331 466/50 467/4 888 469/15 4500/1
4600/140 4651/777 5000/111
SEEN-BY: 5001/100 5005/49 5015/42 46 5019/40 400
5020/101 113 545 715 814 830
SEEN-BY: 5020/846 848 1042 2992 4441 5480 8086
12000 5022/128 5024/1024
SEEN-BY: 5029/32 5030/49 115 1081 1474 5036/26
5049/1 3 5050/151 5053/51 58
SEEN-BY: 5054/8 30 89 5058/104 5060/900 5061/133
5068/45 5083/1 444 6090/1
@PATH: 460/5858 58 463/68 5020/1042 4441