Форум » » Русские шрифты в редакторе Simpl+ » Ответить

Русские шрифты в редакторе Simpl+

Вячеслав: Подскажите, как лучше поступить. Поменял ноутбук, в simpl+ комментарии написанные на русском теперь крокозябрами. Привычная смена шрифта на Courier в Edit->Preference не помогает. Может есть смысл перенести шрифт windows с другого ПК или в реестре что то поправить можно?

Ответов - 28, стр: 1 2 All

DmitriiP: обе строки test_text и out_text1 эдентичные 1:1 в дебагере, никаких &#x после "Pass Thru Mark as UTF-16" нет, результат вывода строк разный. у крестрона полный бардак с кодировками. Вячеслав пишет: (киньте в форум что хотелось написать и что получилось в дебагере, посмотрим)

Вячеслав: Да ситуация с одинаковым видом в дебагере и разной интерпретацией тоже сталкивался. Вроде смотришь, ну чем не UTF, а не работает. Пропускаешь через двойное преобразование через ascii, то же самое на выходе но работает. В самом деле поверишь в существование невидимых глазу дебагера каких то метаданных типа <meta http-equiv=Content-Type content="text/html;charset=UTF-16"> которые влияют на дальнейшее восприятие символов программой. Странно, что всякие директивы вида: #ENCODING_ASCII #ENCODING_UTF16 Parameter Encoding Type никаких результатов не давали. А может ждал видимого результата, а он на уровне метаданных. А "всеобъемлющий" HELP на штатные конверторы мог бы содержать хотя бы фразу "It `s Magic" Таки дождемся, что kislez2015 выложит из дебагера. Может и правда штатный модуль с Pass Thru Mark as UTF-16 творит "чудеса".

eoulianov: \x04\x22\x04\x35\x04\x41\x04\x42\x04\x3E\x04\x32\x04\x4B\x04\x39\x20\x31\x20\x32\x32\x20\x04\x42\x04\x35\x04\x3A\x04\x41\x04\x42 - не винегрет, а реальные 16-битные символы, просто debugger показывает их так. Если у символа код больше 255, то дебаггер покажет его в два байта, например \u0422 показан тут как \x04\x22, если меньше но не 0, то будет показано как один символ, например \u0020 есть \x20, а если окажется код 0, то остаток строки не покажет вовсе. В этой строке нет ни UTF-16, ни UTF-8, в ней ПРОСТО один за другим символы Unicode. и если нужно их выводить на Smart Graphics 2.0, то символы с кодом до 255 нужно выводить как есть, а больше - через HTML character entity references, всё будет работать. Никакие заклинания #ENCODING_ASCII и meta http-equiv не помогут с кириллицей. kislez2015 вам надо было бы ешё намекнуть, что и контроллер используется 2-й серии) Раз на обычную панель напрямую с S+ гонит кириллицу правильно. Всё что прозводится в S+ в этом случае будет в Windows-1251, и конвертор вам нужен WIN1251->HTML. В нём нужно кириллические символы из Windows-1251 выводить через HTML character entity references, а остальные - как есть, и всё запашет. Ну, пока не появятся слишком длинные строки.


Вячеслав: Интересно, какова длина строки len() при таком подставе"подходе" отображения дебагером символов. Символ \x00\x31 ("1") выводится как \x31. Длина его при это будет 2 байта или 1????

DmitriiP: может кому и сгодится , сделал для себя (для теста), работает только с 3-ей серией (использует S#) P.S. также там есть 2 функции для HEX Выводит только младшие байты trace("%s\n",StringEncode.StringToHexSimplSharpString(In_Unicode)); Выводит в формате 2 байт trace("%s\n",StringEncode.UnicodeStringToHexSimplSharpString(In_Unicode));

DmitriiP: cp1251 <-> UNICODE чуть более разширинная версия + добавил StringEncode.CP1251StringToHTMLEntitiesString(); + добавил 4 .usp модуля P.S. Все строки на скрине идут нарямую с модулей на входы ТП P.S.2 Единственные символы с которым нужно быть осторжно < и > , так как панель начинает думать что это элемент и: <хрень> не отобразится и ещё хуже будет если вы не закроете эту бяку через </хрень> < / > - заменить на &# 60/62 ; из первой строки

BaDoS: DmitriiP можете перезалить ваш модуль CP1251, а то ссылка уже не рабочая?

DmitriiP: BaDoS пишет: DmitriiP можете перезалить ваш модуль CP1251, а то ссылка уже не рабочая? в Л.С.



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