Страница 1 из 2
Добавлено: Пт сен 16, 2022 10:19
antabu
Извините, если уже обсуждалось. Win XP
Вьювером по F3 открываю для просмотра .html файл с кириллицей в кодировке UTF-8. Тип файла автоопределяется правильно, а кодировка - нет.
В меню Кодировка выбираю Другая кодировка (ручной ввод) - ввожу кодовую страницу 65001.
Теперь текст отображается правильно, однако копирование работает неправильно, копируются не те символы, которые выделены.
Правда, если кодировку выбрать в меню Вид, то копирование работает правильно.
Я так понимаю, что автоопределение кодировки происходит по нескольким символам первых строк. В .html это теги с латиницей, по ним определить кодировку нельзя. А как настроить автоопределение по другому месту файла?
И ещё. Если в меню Кодировка выбрать Настроенная для текущего шрифта, а шрифт выбрать ARIALUNI , то и кодировка должна быть юникодная?
Добавлено: Сб сен 17, 2022 11:32
Моторокер
Лучше приложить файл, т.к. кодировка может быть прописана в самом коде.
Добавлено: Сб сен 17, 2022 12:30
Avada
antabu
Прочитайте внимательно заголовок темы ("Проблемы, оставшиеся неисправленными"), пояснения в первом сообщении (их, впрочем, и потом полно было, в т.ч. несколько на текущей странице) и получите очередное замечание за оффтоп. Вы правила форума когда-нибудь соблюдать начнёте или пора прибегать к более серьёзным мерам воздействия и начать подобные сообщения просто удалять?
Это не говоря про то, что вы даже не считаете нужным указать текущую версию TC. А ответ в общем виде будет, скорее всего, "никак не настроить".
Добавлено: Сб сен 17, 2022 14:53
antabu
Прошу прощения.
Объясняю. Столкнулся с явлением, когда выбираю ручной ввод кодировки 65001 и в результате копируется не тот текст, который выделен, на версии TC 9.51, обновился до последней версии, обнаружил, что баг сохранился и решил запостить сюда, не прочитав первого сообщения.
А сегодня под седьмой виндой - то же самое.
Однако, это наблюдаю на файлах .html, скачанных с либрусека. Если сохранить реальную страницу в кодировке UTF-8 из интернета, при просмотре текст отображается правильно.
Подскажите, в какой теме я мог бы выложить кусочек такого текста, чтобы Вы убедились, что баг реально существует?
Добавлено: Сб сен 17, 2022 17:38
Avada
antabu
Вот и выложите пока здесь, причём не кусочек, а ссылку на залитый куда-то (лучше в архиве) весь проблемный файл. А где и как это разместить потом, разберутся, видимо, теперь уже без вашего участия.
Добавлено: Вс сен 18, 2022 05:48
antabu
Добавлено: Вс сен 18, 2022 07:03
Avada
Avada
Сообщения выносятся из темы "Проблемы, оставшиеся неисправленными" в самостоятельную тему.
Ваш файл действительно криво отображается в Листере (проверял в TC 10.51 на Windows 7), причём не только в чистом TC, но и с плагином HTMLView. Обычно же подобных проблем нет.
В первой строке, полагаю, запись charset=utf8 сделана так, что непонятна для TC и его плагинов. Я тут не специалист, но во всяком случае, после замены <meta http-equiv='Content-Type' content='text/html; charset=utf8'> на <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> весь этот паноптикум пропадает. В чём тут дело — в сайте, в браузере или в самом способе сохранения, смотрите самостоятельно.
Разумеется, если неправильно сработало автоопределение кодировки, в Листере в данном случае следовало выбрать штатный режим "UTF-8" в меню "Вид". Зачем надо было вручную добавлять в список кодировок изначально отсутствовавшую там строку для UTF-8 (65001), я не понимаю, однако результат подтверждаю: копирование текста теперь выполняется действительно неправильно.
Поскольку при правильном сохранении страницы бага нет, а исправляется проблема, как сказано выше, не той опцией, не знаю, надо ли тут что-то обсуждать.
Добавлено: Вс сен 18, 2022 08:30
antabu
Дело в том, что подобную процедуру просмотра подобных скачанных файлов я проделываю не одну тысячу раз в течение нескольких лет. И вместо того, при автоопределении кодировки, чтобы каждый раз переключаться вручную в меню "Вид", хотел один раз выбрать в меню"Кодировка", отказавшись от автоопределения.
Мне нужно бывает скопировать несколько слов из текста.
А за диагностику по поводу кавычек благодарю.
P.S.
Зачем надо было вручную добавлять в список кодировок изначально отсутствовавшую там строку для UTF-8 (65001), я не понимаю,
В этом списке полно кодировок, которые реально не встречаются на практике, с самая ходовая - отсутствует. Этот список давно пора ревизовать автору программы.
Добавлено: Вс сен 18, 2022 08:58
Monarch-LFV
antabu
Если подобную операцию вы проделываете не одну тысячу раз и нужно только скопировать текст, может быть проще написать скрипт и распарсить как обычный текстовый файл? Это просто мысли вслух.
Добавлено: Вс сен 18, 2022 09:04
antabu
Не умею.
Добавлено: Вс сен 18, 2022 09:11
Avada
antabu
Вы выбрали, ИМХО, неподходящий механизм. Нетрудно заметить, что при активном режиме "UTF-8" (как и при некоторых других) меню "Кодировка", устанавливающее
постоянную кодировку без автоопределения, вообще недоступно. TC использует здесь более адекватные методы, не требующие обращения к этому меню, которое, собственно, и предназначено в первую очередь для работы с экзотическими кодировками и дополняет, а не заменяет основные опции для, вот именно, ходовых вариантов. В меню "Вид" для установки этого режима каждый раз лезть необязательно, достаточно клавиши 7.
И, как говорится, вишенка на тортике: при вашем способе установки кодировки кривое копирование текста из HTML происходит, похоже, в любом случае — даже из нормально сохранённого файла. Ещё один аргумент в пользу того, что данная методика не годится.
Что касается "не одной тысячи раз", то рискну дать альтернативный совет: установите в TС как средство внешнего (или внутреннего, если через
Apploader) просмотра старую, но безошибочную утилиту
View64 и копируйте с её помощью содержимое своих HTML сколько угодно вместо, извините, занятий фигнёй.
Ещё одна альтернатива (хотя и не идеальная) уже в рамках TC: назначить для типа файлов *.HTML режим просмотра UTF-8 (7) — см. кнопку на второй странице диалога настроек Листера. Естественно, будут проблемы с HTML в другой кодировке, но для большого массива проблемных файлов с UTF-8 сгодится: отображение текста нормальное и копирование работает. Временно отключать связку можно в дочернем диалоге "Режимы просмотра по типам файлов" щелчком по началу строки с *.html в списке (звёздочка превратится в минус).
Добавлено: Пн сен 19, 2022 20:54
Моторокер
antabu
Откуда вообще берётся этот файл и что происходит потом? Какая цель этих действий?
Разгребать последствия конечно интересно, но может делается этот процесс намного проще.
Добавлено: Вт сен 20, 2022 02:20
Monarch-LFV
antabu писал(а):А за диагностику по поводу кавычек благодарю.
Там даже не в кавычках дело, а в дефисе: UTF
-8. Вернее в его отсутствии изначально.
Если его добавить, то у меня все нормально открывается и копируется. Написал VBS скрипт, добавляющий этот дефис во все выделенные файлы:
Код: Выделить всё
' Меняет в выделенных файлах "utf8" на "utf-8"
' параметры: %WL
Option Explicit
on error resume next
Dim FSO, FileList, List, F, filename, TextStream, Str
Set FSO = CreateObject("Scripting.FileSystemObject")
FileList = WScript.Arguments(0)
List = Split(FSO.OpenTextFile(FileList,,,-1).ReadAll, vbNewLine)
For Each F In List
If F <> "" Then
set filename = FSO.Getfile(F) ' Имя файла
Set TextStream = FSO.OpenTextFile(filename, 1, False, -2)
Str = TextStream.ReadAll
TextStream.Close
Set TextStream = FSO.OpenTextFile(filename, 2, False, -2)
Str = replace(Str, "charset=utf8", "charset=utf-8")
TextStream.Write Str
TextStream.Close
End If
Next
Добавлено: Вс сен 25, 2022 13:54
antabu
Моторокер писал(а):antabu
Откуда вообще берётся этот файл и что происходит потом? Какая цель этих действий?
Разгребать последствия конечно интересно, но может делается этот процесс намного проще.
Это длинная история. Я коллекционирую электронные книги ...надцать лет (в основном - технические). Зарегистрирован на либрусеке примерно тогда, и выполнил требования этой библиотеки, чтобы иметь возможность скачивать оттуда. Файл взят оттуда и в том виде, как он был, я его выложил в облако.
Основной формат у них - .fb2. Но в те годы я не смог подобрать для себя подходящей читалки для этого формата под виндой. Тогда я стал брать книги в .html и конвертировать их плагином CHMDir в .chm.
Тогдашняя версия ТС не обладала текстовым поиском по 2-м кодировкам, все файлы перекодированы в виндовую кодировку для удобства поиска текста в один проход.
Для названий файлов книг у меня своя система. На кириллице даю название книги (часто - укороченное), в скобках - год издания, далее фамилия и инициалы автора, .chm. Например,
Нищета историцизма(93)Поппер К.cHm
Сначала создаю папку с таким именем, а для этого и нужен просмотр и копирование слов скачанного файла из архива, быстрее, чем в браузере.
Добавлено: Пн окт 10, 2022 15:59
BlackFox
Monarch-LFV правильно выше уазал - проблема не в кавычках, а в отсутствии тире в названии кодировки. По стандарту тире там должно присутствовать
https://www.w3.org/International/questi ... clarations
Как вариант - в стандарте есть указание на то, что наличие BOM заголовка имеет приоритет перед указанием кодировки в метатэге. Если это действительно так и работает в тотале - может, легче сгенерировать BOM заголовок? Например, Notepad++ это делает парой щелчков меню.
P.S. сам проверить не могу, ибо воспроизвести проблему не получается - всё в листере показывается и копируется правильно и в режиме HTML просмотра, и просто текстом. Дажже с нерусской локалью по умолчанию.
TC10.50 на Win10.