Victor Wagner wrote:
On 2006.12.30 at 18:30:18 +0300, Alexander Danilov wrote:

а что касается проблем, то там русские буквы при вводе etcl забывает
конвертировать из unicode в cp1251
Скорее он что-то другое откуда-то из другого места забывает
конвертировать. Например из UCS2 в utf-8. Или по каким-то причинам
интерпретирует символы cp1251 как символы latin-1 и перекодирует в
unicode соответственно.
ну так как про вводе в виджете на одно нажатие русской буквы появляются
2 символа , то наверно всё же utf-8

Зависит от того какие два символа - если там chr(4) то - utf-16.
И скорее всего там не "не перекодирует" а "по ошибке лишний раз
перекодирует". Вы ему не пробовали первой строкой в скрипте encoding system utf-8 сказать?

Нашёл кусок моего письма разработчикам eTcl

 As I understand etcl do not convert letters from unicode to current etcl 
system encoding.
 When a redefine the binding "bind Entry <Key>" like this:

   bind Entry <Key> {
     tk::CancelRepeat
     tk::EntryInsert %W [encoding convertfrom unicode %A]
   }
 russian letters display correctly in entry widgets, but not latin letters.


 Linux version of etcl has similar problem: russian letters do not displayed at 
all in entry
 or text widgets.




Код автодетекта системной кодировки одно из самых слабых мест
в Tcl. Помнится, были времена когда и в unix там всё некругло было.
Я туда руку прикладывал, Оськин прикладывал, Тоботрас прикладывал.
Где-то к концу ветки 8.2 починили. Возможно, что в виндовом коде то же
самое (особенно если мы знаем, что во всяких freewrap и tclkit там до
сих пор проблемы). Например, не знает он про юникодность CE и выбирает
кодировку по тому же алгоритму что и в десктопной винде.



Утверждать не стану, но кажется у меня tclkit кодировку правильно определяет,
но может это от того, что я его сам починил :)


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Ответить