HandyCache форум

Главная категория => Общие вопросы => Тема начата: DenZzz от 21 января 2007, 13:30:59



Название: Баг - Неправильная кодировка при копировании в буфер
Отправлено: DenZzz от 21 января 2007, 13:30:59
NothingAnother

Цитировать
при копировании строки монитора и последующей вставке в какой-нить редактор из буфера обмена - содержимое столбца "Правила" (кириллица только в нём) нечитаемо из-за нераспознаваемой кодировки

Пару раз видел такое и писал mai62, но так и не смог научиться стабильно воспроизводить этот баг! После перезапуска HC у меня все нормально...



:good: Исправлено в версии HC 1.0 RC1 !


Название: Баг - Неправильная кодировка при копировании в буфер
Отправлено: NothingAnother от 21 января 2007, 14:06:46
не смог научиться стабильно воспроизводить этот баг! После перезапуска HC у меня все нормально...
У меня - стабильно >:(


Название: Баг - Неправильная кодировка при копировании в буфер
Отправлено: Дем от 21 января 2007, 17:58:49
Цитировать
при копировании строки монитора и последующей вставке в какой-нить редактор из буфера обмена - содержимое столбца "Правила" (кириллица только в нём) нечитаемо из-за нераспознаваемой кодировки
Переключи раскладку клавиатуры в НС :)

Ч.34 (Черный список):
×.34 (×åðíûé ñïèñîê):


Название: Баг - Неправильная кодировка при копировании в буфер
Отправлено: DenZzz от 21 января 2007, 18:15:26
Цитировать
Переключи раскладку клавиатуры в НС


Точно! При английской раскладке клавы в буфер копируется абракадабра! Причем не только при копировании строк Монитора, но и при копировании правил с комментариями на кириллице!

Вот пример из Черного списка:
#4#~#True#~#(?#---Áëîêèðîâêà_âíåøíèõ_ññûëîê).*#~#^[^/]*newsru\.com#~#newsru\.com


Название: Re: Баг - Неправильная кодировка при копировании в буфер
Отправлено: Дем от 22 января 2007, 01:50:03
Неюникодность программы вылезает... На какой версии дельфей она написана?


Название: Re: Баг - Неправильная кодировка при копировании в буфер
Отправлено: Сергей от 22 января 2007, 09:02:56
Цитировать
Переключи раскладку клавиатуры в НС
Не помогает ;)
Всегда по русски копирует.


Название: Re: Баг - Неправильная кодировка при копировании в буфер
Отправлено: Casm от 22 января 2007, 19:48:23
Цитировать
Переключи раскладку клавиатуры в НС
сколько не переключал раскладку - у меня все ОК


Название: Re: Баг - Неправильная кодировка при копировании в буфер
Отправлено: cepera_ang от 01 февраля 2007, 02:12:38
Да это известный глюк, правда почему он появляется не понятно, корреляций каких-либо не замечал, просто перед копированием ставить всегда русскую раскладку везде, да и все, будет правильно копироваться.


Название: Re: Баг - Неправильная кодировка при копировании в буфер
Отправлено: Дем от 01 февраля 2007, 09:47:49
Цитировать
правда почему он появляется не понятно,
Появление его вполне понятно - неполностью юникодовский текстовый контрол в программе. Другое дело, что неизвестно в каких программах какой...


Название: Re: Баг - Неправильная кодировка при копировании в буфер
Отправлено: NothingAnother от 01 февраля 2007, 10:27:54
Да это известный глюк, правда почему он появляется не понятно, корреляций каких-либо не замечал
"почему он появляется", описано в MSDN:
Цитировать
The data is a handle to the locale identifier associated with text in the clipboard. When you close the clipboard, if it contains CF_TEXT data but no CF_LOCALE data, the system automatically sets the CF_LOCALE format to the current input language. You can use the CF_LOCALE format to associate a different locale with the clipboard text. The system uses the code page associated with CF_LOCALE to implicitly convert from CF_TEXT to CF_UNICODETEXT. Therefore, the correct code page table is used for the conversion
т.е. в метаданные MIME-подобного объекта, помещаемого в буфер обмена просто не попадает инф. о локали - и в таком случае винда использует текущую
Цитировать
просто перед копированием ставить всегда русскую раскладку везде, да и все, будет правильно копироваться
Это не выход. Можно вспомнить историю с фотошопом (не помню, каких версий - надеюсь, в текущих уже пофиксено), когда для правильного отображения русского текста требовалось делать маленький подлог - править в реестре таблицу соответствия языков и кодовых страниц, подставляя 1251 и 1033 вместо всевозможных западно- и восточноевропейских языков. В принципе, это равносильно уменьшению правых колёс на автомобиле для езды по маршруту с преобладанием правых поворотов :)


Название: Re: Баг - Неправильная кодировка при копировании в буфер
Отправлено: mai62 от 01 февраля 2007, 10:28:38
Цитата из справки по win32 SDK
Цитировать
The SetClipboardData function places data on the clipboard in a specified clipboard format.
...
When you close the clipboard, if it contains CF_TEXT data but no CF_LOCALE data, the system automatically sets the CF_LOCALE format to the current input locale. You can use the CF_LOCALE format to associate a different locale with the clipboard text.
На данный момент CF_LOCALE не используется, в следующей версии будет.


Название: Re: Баг - Неправильная кодировка при копировании в буфер
Отправлено: cepera_ang от 01 февраля 2007, 10:37:14
Это не выход. Можно вспомнить историю с фотошопом (не помню, каких версий - надеюсь, в текущих уже пофиксено), когда для правильного отображения русского текста требовалось делать маленький подлог - править в реестре таблицу соответствия языков и кодовых страниц, подставляя 1251 и 1033 вместо всевозможных западно- и восточноевропейских языков. В принципе, это равносильно уменьшению правых колёс на автомобиле для езды по маршруту с преобладанием правых поворотов :)
Хм, а этот фикс очень даже полезный сам по себе, во многих программах исчезают проблемы, и может эта проблема тоже решается, хотя это конечно устранение следствия а не причин :)


Название: Re: Баг - Неправильная кодировка при копировании в буфер
Отправлено: NothingAnother от 01 февраля 2007, 17:09:22
этот фикс очень даже полезный сам по себе, во многих программах исчезают проблемы
Фиксы направлены на исправление кривизны, в данном же случае это не фикс, а кривой прогиб под кривой софт - то, что называется "хвост крутит собакой". Выяснение "полезности" такого подхода выходит за рамки топика, а здесь давайте просто тихо порадуемся оперативности, с которой автор реагирует на выявленные недочёты... ;)