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 

Single Post  Topic: [wlx] csvtab - просмотр CSV файлов 
Author Message
Destiny



PostPosted: Fri Mar 22, 2024 11:02    Post subject: Reply with quote

little-brother wrote:
Там не какая то фиксированная последовательность. utf8 кодирует один символ в 1-4 байта. Английские - это всегда 1 байт и в принципе совпадает с ANSI, а вот русские буквы - это уже по два байта.

Ну я же не про это написал свои мысли! Пример ошибочного символа вас разве не навел на мысль, что такими "неверными"
символами надо сразу изначально рассматривать такой диапазон знаков, который в принципе не может существовать в текстовом файле?

Вроде как вот такой набор символов должен быть нормальным:

Основные многоязычные плоскости (Basic Multilingual Plane):

От 0x0020 до 0x007E (включительно) - символы ASCII и их расширения.
От 0x00A0 до 0x00FF - дополнительные символы, такие как латинские расширения.
От 0x0100 до 0x017F - латинские расширения А и В.
От 0x0180 до 0x024F - различные расширения, включая латиницу, кириллицу, греческий алфавит и другие.


Символы за пределами основной многоязычной плоскости:

От 0x0370 до 0x03FF - дополнительные греческие символы.
От 0x0400 до 0x04FF - кириллические символы.
От 0x0500 до 0x052F - дополнительные кириллические символы.
От 0x1E00 до 0x1EFF - дополнительные символы для различных алфавитов.


Символы для математических и технических вычислений:

От 0x2200 до 0x22FF - математические операторы.
От 0x2300 до 0x23FF - технические символы и различные стрелки.
Специальные символы и эмодзи:


От 0x1F300 и выше:

Эмодзи (символы смайликов и иконки):
От 0x1F300 до 0x1F6FF.

Графические символы (включая флаги, карты, знаки зодиака):
От 0x1F700 до 0x1F77F.

Дополнительные символы и пиктограммы:
От 0x1F780 до 0x1F7FF.

Символы и пиктограммы для музыки:
От 0x1F800 до 0x1F8FF.

Символы и пиктограммы для иероглифов и других символов:
От 0x1F900 до 0x1F9FF.

Дополнительные специальные символы:
От 0x1FA00 и выше.

А вот наш "обламывающий всё" символ имеет код 0x001A (U+0000 до U+001F) - а значит он НЕ входит в диапазон понятных
человеку/бумаге символов. И вот такие явно понятные bad-символы искать и исключать, но и сообщать пользователь об этом.

И такой код он сохранил после перекодировки. Т.е. мы выполняем общую перекодировку в UTF-8. Если нет ошибок - шикарно.
Если есть - то для каких символов? Если полученный код символа не входит в разрешённый, то нафиг его и дать знать юзеру.
Еще раз - тот же xmlreview вполне лего и трезво указал на этот символ после перекодировки в UTF-8 всего файла.
Code:
Reason: The character "0x001A" cannot occur in text.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group