cp866<>utf8
Модератор: Модераторы
Привет едино мышленники я программист со стажем. занимался системакми как для Роскосмоса так и для Железных дороги (которые сейчас и разробатываю). Я тут не давно сталкнулся с Лазарем и фрее паскалем (просто появилясь свободная минута:)) Последнее время я вижу перспективы Российских разработчиков только в кросс платформености! Если кому интересно моя буквально недавняя реализация кириллици на олснове фрее паскаля прошу обращаться (извините адрес дать так не могу как меня могут не принять серьёзно) если всё пойдет ОК то моя работа будет опублекована! Для кирилицы мой модуль полностью поддерживает кодировки CP1251,CP855,CP866,KOI8-R,KOI8-U,KOI8-RU,KOI8-E,MacCyrillic,KIO-7,DKOI-8,AMIGA-DM. Если кому интересно пишите. У меня много задумок. (использование кодировок прозрачно для программиста).
Есть две проблемы. Имеется две системы: для разработки (ASPLinux 11) и целевая, на которой должен работать разрабатываемый софт (система на базе RedHat 6). На обеих установлена и используется локаль ru_RU.koi8-r. Приложение под GTK1. Среда - Lazarus 0.9.25 и FPC 2.2.1 из SVN. На той системе, где разрабатываю все нормально.
Проблема 1. На целевой системе не отображается русский шрифт на кнопках, в меню и некоторых других элементах управления, а в других же (заголовке окна, надписях) - отображается нормально (пришлось правда явно указать шрифт). Для кнопок шрифт менял, пробовал делать исходники в UTF-8 и компилить с -Fcutf8, пробовал модуль GetText с разными кодировками - везде одно и то же: вместо русских букв - ничего (латиница при этом отображается нормально).
Проблема 2. На целевой системе в элементах управления типа TEdit и TMemo нет никакой реакции на ввод в русской раскладке. Даже событие OnKeyPress не обрабатывается. Обрабатывается только OnKeyDown но при этом переменная Key содержит код не русского, а соответствующего латинского символа на раскладке клавиатуры (то есть не Й, а Q, например). Делал все, что и по первой проблеме.
Сталкивался ли кто-нибудь с таким?
Mr.Smart
Интересно. Выложи, посмотрим твой модуль
Проблема 1. На целевой системе не отображается русский шрифт на кнопках, в меню и некоторых других элементах управления, а в других же (заголовке окна, надписях) - отображается нормально (пришлось правда явно указать шрифт). Для кнопок шрифт менял, пробовал делать исходники в UTF-8 и компилить с -Fcutf8, пробовал модуль GetText с разными кодировками - везде одно и то же: вместо русских букв - ничего (латиница при этом отображается нормально).
Проблема 2. На целевой системе в элементах управления типа TEdit и TMemo нет никакой реакции на ввод в русской раскладке. Даже событие OnKeyPress не обрабатывается. Обрабатывается только OnKeyDown но при этом переменная Key содержит код не русского, а соответствующего латинского символа на раскладке клавиатуры (то есть не Й, а Q, например). Делал все, что и по первой проблеме.
Сталкивался ли кто-нибудь с таким?
Mr.Smart
Интересно. Выложи, посмотрим твой модуль
Вот дошли руки до выкладывания:)
Ловите модуль перекодировок!
http://transenerkom.ru/src/codepage_manager.zip
Ваши мнения и пожелания шлите в личку или на мыло указано в архиве!
Ловите модуль перекодировок!
http://transenerkom.ru/src/codepage_manager.zip
Ваши мнения и пожелания шлите в личку или на мыло указано в архиве!
ViruZ писал(а):Добавил в CodeChanger следующую функцию:
function TCodeChanger.DosToUtf8(var Text: string): boolean;
У вас там табличка неполная. Вот полная, сгенерированная с использованием актуального iconv'а.
128: b := #208#144; 129: b := #208#145; 130: b := #208#146; 131: b := #208#147;
132: b := #208#148; 133: b := #208#149; 134: b := #208#150; 135: b := #208#151;
136: b := #208#152; 137: b := #208#153; 138: b := #208#154; 139: b := #208#155;
140: b := #208#156; 141: b := #208#157; 142: b := #208#158; 143: b := #208#159;
144: b := #208#160; 145: b := #208#161; 146: b := #208#162; 147: b := #208#163;
148: b := #208#164; 149: b := #208#165; 150: b := #208#166; 151: b := #208#167;
152: b := #208#168; 153: b := #208#169; 154: b := #208#170; 155: b := #208#171;
156: b := #208#172; 157: b := #208#173; 158: b := #208#174; 159: b := #208#175;
160: b := #208#176; 161: b := #208#177; 162: b := #208#178; 163: b := #208#179;
164: b := #208#180; 165: b := #208#181; 166: b := #208#182; 167: b := #208#183;
168: b := #208#184; 169: b := #208#185; 170: b := #208#186; 171: b := #208#187;
172: b := #208#188; 173: b := #208#189; 174: b := #208#190; 175: b := #208#191;
176: b := #226#150#145; 177: b := #226#150#146; 178: b := #226#150#147; 179: b := #226#148#130;
180: b := #226#148#164; 181: b := #226#149#161; 182: b := #226#149#162; 183: b := #226#149#150;
184: b := #226#149#149; 185: b := #226#149#163; 186: b := #226#149#145; 187: b := #226#149#151;
188: b := #226#149#157; 189: b := #226#149#156; 190: b := #226#149#155; 191: b := #226#148#144;
192: b := #226#148#148; 193: b := #226#148#180; 194: b := #226#148#172; 195: b := #226#148#156;
196: b := #226#148#128; 197: b := #226#148#188; 198: b := #226#149#158; 199: b := #226#149#159;
200: b := #226#149#154; 201: b := #226#149#148; 202: b := #226#149#169; 203: b := #226#149#166;
204: b := #226#149#160; 205: b := #226#149#144; 206: b := #226#149#172; 207: b := #226#149#167;
208: b := #226#149#168; 209: b := #226#149#164; 210: b := #226#149#165; 211: b := #226#149#153;
212: b := #226#149#152; 213: b := #226#149#146; 214: b := #226#149#147; 215: b := #226#149#171;
216: b := #226#149#170; 217: b := #226#148#152; 218: b := #226#148#140; 219: b := #226#150#136;
220: b := #226#150#132; 221: b := #226#150#140; 222: b := #226#150#144; 223: b := #226#150#128;
224: b := #209#128; 225: b := #209#129; 226: b := #209#130; 227: b := #209#131;
228: b := #209#132; 229: b := #209#133; 230: b := #209#134; 231: b := #209#135;
232: b := #209#136; 233: b := #209#137; 234: b := #209#138; 235: b := #209#139;
236: b := #209#140; 237: b := #209#141; 238: b := #209#142; 239: b := #209#143;
240: b := #208#129; 241: b := #209#145; 242: b := #208#132; 243: b := #209#148;
244: b := #208#135; 245: b := #209#151; 246: b := #208#142; 247: b := #209#158;
248: b := #194#176; 249: b := #226#136#153; 250: b := #194#183; 251: b := #226#136#154;
252: b := #226#132#150; 253: b := #194#164; 254: b := #226#150#160; 255: b := #194#160;
