Форум » [x]Harbour » укробуква i » Ответить

укробуква i

Dima: Не могу набрать эту заразу в GET Живет она на педали s(ы) Остальные 2 укробуквы набираются.

Ответов - 8

krutoff: С этой буквой есть проблема перекодировки RU866 - RU1251 Я использую латинскую i

Dima: krutoff пишет: Я использую латинскую i То же я сказал и заказчику а он говорит что для него это гимор , так как переключаться нужно

Dima: Апостроф тоже не пашет


Pasha: У меня на работе украинской клавы нет уже почти 5 лет, как новый комп получил, не стал ставить. С двумя раскладками работать куда как удобнее, чем с тремя. Но для такого случая поставил на посмотреть. Думаю, что проблема связана с уникодностью харбора. Наверное, по умолчанию стоит кодировка ru866, ну или ua866. А в этой кодировке украинская i отсутствует. Символ вводится в unicode, харбор его пытается транслировать в ru866, и.. облом. Думаю, что без костылей тут не обойтись. Надо или использовать ru1251 с дальнейшей трансляцией ввода в ru866 ручками, либо делать еще более грубый костыль.

Dima: Pasha Да проверил в консоли кодировку 1251 , работает эта буква. Апостров все равно не пашет. Сижу и думаю а что же за костыль то писать , если база у меня в RU866...........

Pasha: С апострофом сложнее, его нет и в 1251 А для i костыль примерно такой: FUNCTION uaReadModal hb_CdpSelect( "RU1251" ) ReadModal() hb_CdpSelect( "RU866" ) RETURN Nil а для редактирования в get сделать блок кода типа такого: function OEMBlock(bl) Return {|x| if(x#nil,Eval(bl,WinToDos(x)),), DosToWin(Eval(bl))} DosToWin, WinToDos сделать самому, с учетом перекодировки украинской i а английскую. С апострофом пока не знаю. Разве что заставить юзера вводить его на английском или русском регистре. Но это может быть сложно :)

Dima: Pasha Спасибо !

Dima: Pasha Способ проще [pre2] hb_gtInfo( HB_GTI_INKEYFILTER, { | nKey | SWITCH nKey CASE 1124074582 // код укр i RETURN 105 CASE 1124074502 // код укр I RETURN 73 ENDSWITCH RETURN nKey } ) [/pre2]



полная версия страницы