Tablora

Tablora · Библиотека

Обработать метку порядка байтов в первой ячейке

Перед первым заголовком может стоять метка порядка байтов UTF-8. Анализатор удаляет одну такую метку в начале, и первая ячейка читается как id без скрытых символов.

Невидимый символ перед заголовком

Многие программы, включая вариант CSV UTF-8 в Excel, начинают текстовый файл с метки порядка байтов — символа U+FEFF, который сообщает программе чтения, что файл в UTF-8. В большинстве редакторов он невидим, но это всё равно символ. Если инструмент его не удаляет, первым заголовком становится метка, за которой идёт id, и любой поиск или соединение по столбцу id не срабатывает без видимой причины.

Анализатор удаляет одну метку порядка байтов в самом начале вставленного текста, прежде чем читать ячейки. Тогда первый заголовок — ровно id.

Пример: заголовок id,name

В примере на странице заголовок id,name, который начинается с метки порядка байтов, за ним запись 1,Mira, разделитель полей — запятая. Анализатор показывает 2 строки и 2 столбца, а в строке 1, столбце 1 стоит id без скрытого префикса.

Больше в тексте ничего не меняется: остальные ячейки сохраняют все свои символы.

Без этого шага первый заголовок выглядел бы на экране так же, но при сравнении оказывался бы другим — как раз такое несовпадение заметить труднее всего.

Проверка файла, в котором может быть метка

Метки посреди текста и в экспорте

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

Экспорт в CSV из приложения Tablora намеренно начинается с метки порядка байтов, чтобы электронные таблицы правильно открывали текст с диакритикой, турецкий, японский и другой нелатинский текст. Если вставить такой файл сюда, анализатор удалит эту метку, и первый заголовок придёт чистым.

Другие невидимые символы

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

Входные данные

Текст таблицы
id,name 1,Mira
Разделитель полей
,

Результаты

Строки
2
Столбцы
2
idname
1Mira
Строки с другой шириной
0