RU.GOLDED---------------- < Пред. | След. > -- < @ > -- < Сообщ. > -- < Эхи > --
 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



   GoldED+ VK   │                                                 │   09:55:30    
                                                                                
В этой области больше нет сообщений.

Остаться здесь
Перейти к списку сообщений
Перейти к списку эх