Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Неправильный просмотр HTML в кодировке UTF-8
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
antabu



Joined: 15 Sep 2005
Posts: 187
Location: Новосибирск

Post (Separately) Posted: Fri Sep 16, 2022 11:19    Post subject: Reply with quote

Извините, если уже обсуждалось. Win XP
Вьювером по F3 открываю для просмотра .html файл с кириллицей в кодировке UTF-8. Тип файла автоопределяется правильно, а кодировка - нет.
В меню Кодировка выбираю Другая кодировка (ручной ввод) - ввожу кодовую страницу 65001.
Теперь текст отображается правильно, однако копирование работает неправильно, копируются не те символы, которые выделены.
Правда, если кодировку выбрать в меню Вид, то копирование работает правильно.
Я так понимаю, что автоопределение кодировки происходит по нескольким символам первых строк. В .html это теги с латиницей, по ним определить кодировку нельзя. А как настроить автоопределение по другому месту файла?
И ещё. Если в меню Кодировка выбрать Настроенная для текущего шрифта, а шрифт выбрать ARIALUNI , то и кодировка должна быть юникодная?
_________________
antabu
Back to top
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1517
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Sat Sep 17, 2022 12:32    Post subject: Reply with quote

Лучше приложить файл, т.к. кодировка может быть прописана в самом коде.
_________________
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Sat Sep 17, 2022 13:30    Post subject: Reply with quote

antabu
Прочитайте внимательно заголовок темы ("Проблемы, оставшиеся неисправленными"), пояснения в первом сообщении (их, впрочем, и потом полно было, в т.ч. несколько на текущей странице) и получите очередное замечание за оффтоп. Вы правила форума когда-нибудь соблюдать начнёте или пора прибегать к более серьёзным мерам воздействия и начать подобные сообщения просто удалять?
Это не говоря про то, что вы даже не считаете нужным указать текущую версию TC. А ответ в общем виде будет, скорее всего, "никак не настроить".
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
antabu



Joined: 15 Sep 2005
Posts: 187
Location: Новосибирск

Post (Separately) Posted: Sat Sep 17, 2022 15:53    Post subject: Reply with quote

Прошу прощения.
Объясняю. Столкнулся с явлением, когда выбираю ручной ввод кодировки 65001 и в результате копируется не тот текст, который выделен, на версии TC 9.51, обновился до последней версии, обнаружил, что баг сохранился и решил запостить сюда, не прочитав первого сообщения.
А сегодня под седьмой виндой - то же самое.
Однако, это наблюдаю на файлах .html, скачанных с либрусека. Если сохранить реальную страницу в кодировке UTF-8 из интернета, при просмотре текст отображается правильно.
Подскажите, в какой теме я мог бы выложить кусочек такого текста, чтобы Вы убедились, что баг реально существует?
_________________
antabu
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Sat Sep 17, 2022 18:38    Post subject: Reply with quote

antabu
Вот и выложите пока здесь, причём не кусочек, а ссылку на залитый куда-то (лучше в архиве) весь проблемный файл. А где и как это разместить потом, разберутся, видимо, теперь уже без вашего участия.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
antabu



Joined: 15 Sep 2005
Posts: 187
Location: Новосибирск

Post (Separately) Posted: Sun Sep 18, 2022 06:48    Post subject: Reply with quote

https://disk.yandex.ru/d/UEyk5TkY712IUg
_________________
antabu
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Sun Sep 18, 2022 08:03    Post subject: Reply with quote

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), я не понимаю, однако результат подтверждаю: копирование текста теперь выполняется действительно неправильно.
Поскольку при правильном сохранении страницы бага нет, а исправляется проблема, как сказано выше, не той опцией, не знаю, надо ли тут что-то обсуждать.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
antabu



Joined: 15 Sep 2005
Posts: 187
Location: Новосибирск

Post (Separately) Posted: Sun Sep 18, 2022 09:30    Post subject: Reply with quote

Дело в том, что подобную процедуру просмотра подобных скачанных файлов я проделываю не одну тысячу раз в течение нескольких лет. И вместо того, при автоопределении кодировки, чтобы каждый раз переключаться вручную в меню "Вид", хотел один раз выбрать в меню"Кодировка", отказавшись от автоопределения.
Мне нужно бывает скопировать несколько слов из текста.
А за диагностику по поводу кавычек благодарю.
P.S.
Quote:
Зачем надо было вручную добавлять в список кодировок изначально отсутствовавшую там строку для UTF-8 (65001), я не понимаю,
В этом списке полно кодировок, которые реально не встречаются на практике, с самая ходовая - отсутствует. Этот список давно пора ревизовать автору программы.
_________________
antabu


Last edited by antabu on Sun Sep 18, 2022 10:02; edited 1 time in total
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 227

Post (Separately) Posted: Sun Sep 18, 2022 09:58    Post subject: Reply with quote

antabu
Если подобную операцию вы проделываете не одну тысячу раз и нужно только скопировать текст, может быть проще написать скрипт и распарсить как обычный текстовый файл? Это просто мысли вслух.
Back to top
View user's profile Send private message
antabu



Joined: 15 Sep 2005
Posts: 187
Location: Новосибирск

Post (Separately) Posted: Sun Sep 18, 2022 10:04    Post subject: Reply with quote

Не умею.
_________________
antabu
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Sun Sep 18, 2022 10:11    Post subject: Reply with quote

antabu
Вы выбрали, ИМХО, неподходящий механизм. Нетрудно заметить, что при активном режиме "UTF-8" (как и при некоторых других) меню "Кодировка", устанавливающее постоянную кодировку без автоопределения, вообще недоступно. TC использует здесь более адекватные методы, не требующие обращения к этому меню, которое, собственно, и предназначено в первую очередь для работы с экзотическими кодировками и дополняет, а не заменяет основные опции для, вот именно, ходовых вариантов. В меню "Вид" для установки этого режима каждый раз лезть необязательно, достаточно клавиши 7.
И, как говорится, вишенка на тортике: при вашем способе установки кодировки кривое копирование текста из HTML происходит, похоже, в любом случае — даже из нормально сохранённого файла. Ещё один аргумент в пользу того, что данная методика не годится.
Что касается "не одной тысячи раз", то рискну дать альтернативный совет: установите в TС как средство внешнего (или внутреннего, если через Apploader) просмотра старую, но безошибочную утилиту View64 и копируйте с её помощью содержимое своих HTML сколько угодно вместо, извините, занятий фигнёй.
Ещё одна альтернатива (хотя и не идеальная) уже в рамках TC: назначить для типа файлов *.HTML режим просмотра UTF-8 (7) — см. кнопку на второй странице диалога настроек Листера. Естественно, будут проблемы с HTML в другой кодировке, но для большого массива проблемных файлов с UTF-8 сгодится: отображение текста нормальное и копирование работает. Временно отключать связку можно в дочернем диалоге "Режимы просмотра по типам файлов" щелчком по началу строки с *.html в списке (звёздочка превратится в минус).
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1517
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Mon Sep 19, 2022 21:54    Post subject: Reply with quote

antabu
Откуда вообще берётся этот файл и что происходит потом? Какая цель этих действий?

Разгребать последствия конечно интересно, но может делается этот процесс намного проще.
_________________
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Back to top
View user's profile Send private message
Monarch-LFV



Joined: 22 Jul 2019
Posts: 227

Post (Separately) Posted: Tue Sep 20, 2022 03:20    Post subject: Reply with quote

antabu wrote:
А за диагностику по поводу кавычек благодарю.

Там даже не в кавычках дело, а в дефисе: UTF-8. Вернее в его отсутствии изначально.
Если его добавить, то у меня все нормально открывается и копируется. Написал VBS скрипт, добавляющий этот дефис во все выделенные файлы:
Code:
' Меняет в выделенных файлах "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
Back to top
View user's profile Send private message
antabu



Joined: 15 Sep 2005
Posts: 187
Location: Новосибирск

Post (Separately) Posted: Sun Sep 25, 2022 14:54    Post subject: Reply with quote

Моторокер wrote:
antabu
Откуда вообще берётся этот файл и что происходит потом? Какая цель этих действий?

Разгребать последствия конечно интересно, но может делается этот процесс намного проще.

Это длинная история. Я коллекционирую электронные книги ...надцать лет (в основном - технические). Зарегистрирован на либрусеке примерно тогда, и выполнил требования этой библиотеки, чтобы иметь возможность скачивать оттуда. Файл взят оттуда и в том виде, как он был, я его выложил в облако.
Основной формат у них - .fb2. Но в те годы я не смог подобрать для себя подходящей читалки для этого формата под виндой. Тогда я стал брать книги в .html и конвертировать их плагином CHMDir в .chm.
Тогдашняя версия ТС не обладала текстовым поиском по 2-м кодировкам, все файлы перекодированы в виндовую кодировку для удобства поиска текста в один проход.
Для названий файлов книг у меня своя система. На кириллице даю название книги (часто - укороченное), в скобках - год издания, далее фамилия и инициалы автора, .chm. Например,
Нищета историцизма(93)Поппер К.cHm
Сначала создаю папку с таким именем, а для этого и нужен просмотр и копирование слов скачанного файла из архива, быстрее, чем в браузере.
_________________
antabu
Back to top
View user's profile Send private message
BlackFox



Joined: 18 Dec 2004
Posts: 37
Location: Mayence

Post (Separately) Posted: Mon Oct 10, 2022 16:59    Post subject: Reply with quote

Monarch-LFV правильно выше уазал - проблема не в кавычках, а в отсутствии тире в названии кодировки. По стандарту тире там должно присутствовать https://www.w3.org/International/questions/qa-html-encoding-declarations
Как вариант - в стандарте есть указание на то, что наличие BOM заголовка имеет приоритет перед указанием кодировки в метатэге. Если это действительно так и работает в тотале - может, легче сгенерировать BOM заголовок? Например, Notepad++ это делает парой щелчков меню.

P.S. сам проверить не могу, ибо воспроизвести проблему не получается - всё в листере показывается и копируется правильно и в режиме HTML просмотра, и просто текстом. Дажже с нерусской локалью по умолчанию.
TC10.50 на Win10.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group