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 

EncInfo (content-плагин)
Goto page Previous  1, 2, 3, 4, 5, 6
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6180
Location: Москва

Post (Separately) Posted: Wed Jan 29, 2025 07:44    Post subject: Reply with quote

Согласно ридми:
Quote:
"Binary" (binary files, containing special chars #00..#1F)

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



Joined: 01 Jan 2024
Posts: 722

Post (Separately) Posted: Thu Jan 30, 2025 14:06    Post subject: Reply with quote

CaptainFlint
Даже если с технической точки зрения всё верно, на мой взгляд, в логику работы плагина это не вписывается.

Провел небольшие тесты. Баг, о котором говорил mig73, подтверждаю: без BOM плагин кодировки UTF-16 LE и UTF-16 BE не определяет. В CudaViewer всё нормально.

Alextp
Вы больше не планируете развивать и поддерживать плагин?
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6180
Location: Москва

Post (Separately) Posted: Thu Jan 30, 2025 15:28    Post subject: Reply with quote

Orion9 wrote:
Даже если с технической точки зрения всё верно, на мой взгляд, в логику работы плагина это не вписывается.

А какой должна быть логика? Ведь тогда с точки зрения UTF-16 90% файлов можно считать текстовыми, ибо практически любая комбинация байтов окажется валидным символом (разве что нулевые байты числом больше одного подряд или непарные суррогатные последовательности попадутся случайно). Текст — это же не только русский-английский-немецкий, это и всякие иероглифы, которыми забита юникодная таблица.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 722

Post (Separately) Posted: Thu Jan 30, 2025 18:21    Post subject: Reply with quote

CaptainFlint wrote:
А какой должна быть логика?

Простой и понятной пользователю. Если в readme написано:
Quote:
This content plugin shows information about actual encoding of text files.

То и при определении кодировки в поле "Type" должно быть "Text", раз уж автор сам избрал такую парадигму.
CaptainFlint wrote:
Ведь тогда с точки зрения UTF-16 90% файлов можно считать текстовыми

Нельзя, пока алгоритм не определит иначе (вы же прекрасно это понимаете). Но вот именно алгоритма в плагине, похоже, и нету, отсюда все проблемы. Как-то я сразу это упустил, но в readme же написано:
Quote:
- "UTF-16 LE" (detection by signature)
- "UTF-16 BE" (detection by signature)

Следует понимать, что, никаких определений кодировок, за исключением простого считывания маркера BOM, нет? Мне и в голову такое не могло прийти. Да, похоже, именно так. Добавил в начало mp3-файла FFFE - теперь он определяется как "UTF-16 LE" в поле плагина.

Интересует продвинутый и полноценный детект кодировки, как это делает CudaView или AkelPad. Если автор не планирует больше заниматься плагином, то какие есть альтернативы, кто-нибудь в курсе?
Back to top
View user's profile Send private message
Orion9



Joined: 01 Jan 2024
Posts: 722

Post (Separately) Posted: Fri Jan 31, 2025 13:01    Post subject: Reply with quote

Вот примерно о чём идет речь:
Quote:
uchardet

uchardet is an encoding detector library, which takes a sequence of bytes in an unknown character encoding without any additional information, and attempts to determine the encoding of the text. Returned encoding names are iconv-compatible.

uchardet started as a C language binding of the original C++ implementation of the universal charset detection library by Mozilla. It can now detect more charsets, and more reliably than the original implementation.

History

As said in introduction, this was initially a project of Mozilla to allow better detection of page encodings, and it used to be part of Firefox. If not mistaken, this is not the case anymore (probably because nowadays most websites better announce their encoding, and also UTF-8 is much more widely spread).

Techniques used by universalchardet are described at https://www-archive.mozilla.org/projects/intl/universalcharsetdetection

It is to be noted that a lot has changed since the original code, yet the base concept is still around, basing detection not just on encoding rules, but importantly on analysis of character statistics in languages.

https://www.freedesktop.org/wiki/Software/uchardet/

Если верить этой странице, даже Notepad++ когда-то использовал эту библиотеку для определения кодировки текста.

В общем, очень хотелось бы иметь плагин, основанный на этой (или подобной этой) библиотеке. Пока я нашел только скомпилированную версию консольной утилиты:
https://github.com/JetDemo/uchardet
Консольную утилиту можно использовать в плагине WinScriptAdv или Autorun для вывода данных в колонки ТС. Но это только версия 0.0.6 библиотеки, а сейчас уже есть версия 0.0.8, кто-нибуть может скомпилировать последнюю версию? Очень неплохо себя показывает на тестовых файлах по второй ссылке.

Если кому-то интересно, то:
 Подключение через Autorun
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4, 5, 6
Page 6 of 6

 
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