[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Возможна ли поддержка тиклем юникода?



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<)
(Ё Е Й У Ц)


Reply to: