Отправляет email-рассылки с помощью сервиса Sendsay

[TC] кодировочки несоувпадают

Приветствую всех.
Вот тут вопрос такой назрел.
Работаю в эксплорере, отмечаю кусок текста, копирую его в буффер. Потом когда

вставляю в любую программу, то получается краказябра.
Кодировки несовпадают.
Что народ посоветует?
Как получить то, что я отметил?
С почтением Андрей.

Ответить   Andrij Stegnitskiy Thu, 24 Feb 05 11:23:07 +0200 (#322045)

 

Ответы:

Здравствуйте, Andrij!

Вы писали:

Надо не в любую программу вставлять, а только в ту, которая юникод
понимает, например в akelpat. А уже оттуда снова копировать и вставлять
в любую Другую. Akelpat где качал не помню, но могу выслать, он совсем
маленький - килобайт 30 40.

Ответить   Thu, 24 Feb 2005 16:30:13 +0600 (#322069)

 

Ответ на письмо от 24.02.2005
Здравствуйте, Андрей,

Не знаю теоретического обоснования, но сам давно пользуюсь вот каким
эмпирическим приёмом. В обоих программах (источнике и приёмнике)
включаю русскую раскладку клавиатуры. После этого операции копирования
и вставки проходят без проблем.

Ответить   Thu, 24 Feb 2005 13:35:56 +0300 (#322072)

 

Здравствуйте, Andrij.

-----------------------*- Original Message -*AS> Работаю в эксплорере, отмечаю кусок текста, копирую его в буффер. Потом

Известная проблема.
Решается, увы, только транзитом через какой-нибудь текстовый редактор с
нормальным определением кодировок. Типа Bred2 или Akelpad.
Т.е., копируешь в буфер, открываешь редактор, вставляешь из буфера
и тут же заново выделяешь и копируешь уже из редактора. Тогда в буфере
будет текст в "нормальной" кодировке.

Ответить   Vladimir Dovydenkov Thu, 24 Feb 2005 13:44:39 +0300 (#322080)

 

Hello Andrij Stegnitskiy, 24-Feb-2005 11:23 you wrote:

Винда какая? 2000, ХР?

Ответить   "Egor L. Ryabchikov" Sat, 26 Feb 2005 12:06:43 +0300 (MSK) (#323171)

 

привiт, "Egor L. Ryabchikov"
Суб 26 фев 2005 11:06 ти пишеш:

windows xp proffesional
С почтением Андрей.

Ответить   Andrij Stegnitskiy Sun, 27 Feb 05 12:02:40 +0200 (#323696)

 

Hello Andrij Stegnitskiy, 27-Feb-2005 12:02 you wrote:

Так я и думал.

Да, сам столкнулся с такой проблемой. Надо сказать, что связана она
именно с виндой. В 98-й точно такие же манипуляции выполняются без
проблем. Полного решения я пока не знаю.

Однако, замечено, что, если копировать текст с кодировкой 866 в прогу,
которая изначально работает с 1251, (и наоборот тоже), то как раз возникает
вышеупомянутая проблема.

Если кодировки и там, и там совпадают, то никаких проблем не возникает.

Если хочется скопировать что-то из дос окна, то иногда помогает в свойствах
этого окна поставить шрифт "только True type" или же "только растровые".

Универсальное решение проблемы, это когда вы точно выясните, в какую сторону
идёт неправильная перекодировка. Т.е. либо из 866 в 1251, либо наоборот.
Тогда запустите какую-нибудь прожку, которая может по горячей клавише
перекодировать буфер обмена и настройте вручную, чтоб она перекодировала в
нужную сторону. Если прожка будет пытаться автоматически выяснить кодировку,
то у неё ничего не выйдет, т.к. в буфере обмена кодировка правильная, и
портится только при вставке, так что если программа будет пытаться
автоматически определить кодировку, то она ничего и не перекодирует.

Далее вам после копирования в буфер надо будет жать горячую кнопку, при
этом буфер обмена будет перекодирован, и вставлять в нужное место.

Ответить   "Egor L. Ryabchikov" Sun, 27 Feb 2005 20:47:49 +0300 (MSK) (#323851)

 

Доброе утро, Egor.

Вот из описания одной из функцийй windows API, работающих с
текстовыми строками

Remarks

Windows NT: To make the conversion, the function uses the language driver for
the current language selected by the user at setup or by using the Control
Panel. If no language has been selected, Windows completes the conversion by
using internal default mapping. The conversion is made based on the code page
associated with the process locale.

Windows 95: The function makes the conversion based on the information associated
with the user's default locale, which is the locale selected by the user
at setup or by using the Control Panel. Windows 95 does not have language drivers.

То есть в XP есть какой-то языковой драйвер и некоторые функции
преодрозования строк, которые наверняка используют проги, работают
опираясь на выбранный язык.
То есть это подходит для проблемы тех, у которых иногда получается
нормально копировать, переключившись на русский язык.
Думаю, что и в нашем случае проблема где-то там же....
Кстати про эксплорер, если копировать не джозом, через его виртуальный
буфер, то всё пучком;-)
То есть ситуация наверно такова, что джоз берёт инфу непосредственно
из html кода страници, ну а мы её пытаемся вставить туда, где нужно
принять, а в основном во всех редакторах, нормально принимается
w1251, а джоз взял в буфер то, что есть.

Ещё некоторые редакторы вносят в реестр изменение, вот что говорится в
факу к одному из таких.

в раздел реестра: HKEY_LOCAL_MACHINE
ключ: SYSTEM\CurrentControlSet\Control\Nls\CodePage
для Win 9x/Me: 1252=сp_1251.nls
для Win NT/2K/XP: 1252=с_1251.nls

Так, кстати, поступают многие русскоязычные реакторы. Это также позволяет корректно
работать русским шрифтам и в Adobe Photoshop :-)

Для восстановления работоспособности достаточно изменить вышеуказанный ключ реестра
при помощи стандартной программы regedit.exe
для Win 9x/Me: 1252=сp_1252.nls
для Win NT/2K/XP: 1252=с_1252.nls

--
С уважением, Сергей.

Ответить   Tue, 1 Mar 2005 08:32:59 +0300 (#324631)