Alexey Pechnikov пишет:
Hello!
В продолжение темы "Как правильно сделать поддержку юникода в программе" - обнаружил, что не я один
не умею это делать, в тикле также пресловутая буква Ё не желает сортироваться:
$ cat collate.tcl
#!/usr/bin/tclsh8.5
proc russian_compare {a b} {
return [string compare $a $b]
}
proc nocase_compare {a b} {
return [string compare [string tolower $a] [string tolower $b]]
}
set strings {П Й Ё п а у ы б ь ё ю я е ю я}
puts [lsort -command russian_compare $strings]
puts [lsort -command nocase_compare $strings]
puts [lsort $strings]
$ ./collate.tcl
Ё Й П а б е п у ы ь ю ю я я ё
а б е Й П п у ы ь ю ю я я Ё ё
Ё Й П а б е п у ы ь ю ю я я ё
В tclsh8.4 аналогично.
Поддержка юникода оказывается все большей проблемой...
Best regards, Alexey.
Тикль тут не при чем, это проблема кривых кодовый таблиц юникода, об этом я в своё время писал в
русскоязычном списке рассылке по tcl.
$ clisp
[1]> (sort '(й ц у е ё) 'string<)
(Ё Е Й У Ц)
--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org