Nп/п : 46 из 100
От : Vitaliy Aksyonov 1:104/117 14 мар 24 07:17:20
К : Stas Mishchenkov 14 мар 24 16:26:02
Тема : Re: В консольном режиме Linux даже при выборе кодировки UTF-8 вместо ки
----------------------------------------------------------------------------------
@MSGID: 1:104/117 65f2f94f
@REPLY: 2:460/5858 65f2cee2
@CHRS: CP866 2
@TZUTC: -0600
@TID: hpt/lnx 1.9 2022-07-03
Привет, Stas!
14 Mar 24 13:12, ты писал(а) мне:
VA>>>>> Интересно, как он определяет локальную кодировку на венде. :)
SM> [...skipped...]
VA>> Надо чтобы он брал из setlocale(LC_что-то, NULL). И это будет
VA>> работать везде, где есть setlocale. А есть оно почти везде.
SM> $locale = setlocale(LC_CTYPE);
SM> === Import Windows Clipboard Start ===
SM> [fido@brorabbit tests]$ cat ./1_locale.pl
SM> #!/usr/bin/perl
SM> use POSIX qw(locale_h);
SM> use locale;
SM> my $old_locale;
SM> $old_locale = setlocale(LC_CTYPE);
SM> print "$old_locale
";
SM> === Import Windows Clipboard End ===
SM> [fido@brorabbit tests]$ ./1_locale.pl
SM> ru_RU.IBM866
SM> D:\\Fido\\inbound>1_locale.pl C
SM> Не работает.
Ты неправильно её готовишь. Я тоже на это наступил. Надо
внимательнее читать документацию. :) Попробуй так:
setlocale(LC_CTYPE, "");
В твоём варианте оно возвращает текущую для процесса. А так, как
она ранее не была выставлена, то и возвращает C. Мой вариант как раз
выставляет локаль используя LANG и другие переменные и возвращает тебе то, что
наделал.
Best regards,
Vitaliy Aksyonov.
... Приехала: пальцы веером, сопли пузырями!...
--- GoldED+/LNX 1.1.5-b20240305-beta
* Origin: Aurora, Colorado (1:104/117)
SEEN-BY: 46/49 50/109 104/117 221/6 240/1120 250/25
301/1 341/66 451/31
SEEN-BY: 452/28 166 455/19 463/68 467/888 4500/1
5000/111 5001/100 5005/49
SEEN-BY: 5015/42 46 5019/40 400 5020/101 113 545
715 814 830 846 848 1042
SEEN-BY: 5020/2992 4441 5480 8086 12000 5022/128
5029/32 5030/49 115 1081
SEEN-BY: 5030/1474 5036/26 5049/1 3 5050/151
5053/51 58 5054/8 89 5058/104
SEEN-BY: 5060/900 5061/133 5068/45 5083/1 444
6090/1
@PATH: 104/117 5020/1042 4441