Китайский CSV в Excel: UTF-8, GBK и нечитаемые символы

Табличные листы и лупа
Содержание

Если китайский CSV открывается набором нечитаемых символов, сначала сохраните неизменённую копию. В файле могут находиться корректные текстовые байты, которые Excel прочитал в неверной кодировке. Перезапись оригинала искажённым текстом способна затруднить восстановление.

CSV хранит текст и разделители. Имя файла не позволяет надёжно определить кодировку, а само содержимое не сохраняет оформление листов так, как книга Excel. Правильное чтение байтов — первый этап; сохранение кодов и дат в таблице — отдельный.

Выбор исходной кодировки

Для современного обмена текстом широко используется UTF-8. Старые выгрузки из материкового Китая могут применять GBK или родственную китайскую кодировку, а некоторые файлы с традиционными иероглифами — Big5. Однако традиционное написание фразы само по себе не доказывает использование Big5: Unicode допускает обе формы письма.

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

Схема: 中文: UTF-8 E4 B8 AD E6 96 87; GBK D6 D0 CE C4

Предпросмотр импорта в Excel

Вместо двойного щелчка используйте импорт текста или CSV в Excel. В современных настольных версиях он обычно находится на вкладке «Данные» в пункте импорта текста/CSV. Выберите исходную кодировку и разделитель, проверьте предпросмотр и затем загрузите таблицу. Названия меню зависят от версии и языка интерфейса.

Маркер порядка байтов UTF-8, или BOM, помогает Excel распознавать UTF-8 при непосредственном открытии файла. Это сигнатура кодировки в начале файла, а не часть названия первого столбца. Некоторые принимающие системы ожидают UTF-8 без BOM, поэтому выбирайте формат под следующее приложение.

Преобразование читаемого текста в UTF-8

  1. Откройте копию размером до 5 МБ в конвертере кодировки китайских файлов.
  2. Выберите фактическую исходную кодировку и прочитайте предпросмотр.
  3. Проверьте несколько китайских имён или описаний, а не только заголовки.
  4. Экспортируйте UTF-8, добавив BOM, если он нужен принимающему приложению.
  5. Откройте результат заново и сравните характерные строки с оригиналом.

Смена расширения или добавление BOM не превращает байты GBK в UTF-8. Сначала необходимо правильно декодировать исходный текст, а затем закодировать его в целевом формате.

Сохранение начальных нулей и длинных кодов

Даже при правильном отображении китайского текста Excel может распознать код как число или дату. Во время импорта задайте соответствующим столбцам текстовый тип. Идентификатор 001234 должен сохранять все шесть символов: превращение в 1234 означает потерю информации.

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

Три разных вида неполадок

Наблюдаемый результатЧто проверить сначала
Китайские имена превратились в посторонние символыИсходную кодировку
Текст читается, но весь попал в один длинный столбецРазделитель и кавычки
001234 превратилось в 1234Тип данных столбца

Эти проблемы могут возникать одновременно, но имеют разные причины. Выбор UTF-8 сам по себе не разобьёт файл с точками с запятой на столбцы, если импортёр ожидает запятые. Выбор разделителя не восстановит неправильно декодированные иероглифы. Текстовый тип защищает идентификаторы, но не устанавливает исходную кодировку файла.

Проверяйте предпросмотр по порядку: читаемый текст, правильные границы полей, подходящие типы столбцов. Возьмите несколько строк с китайским текстом, кодом с начальным нулём и полем с пунктуацией. Заголовки из одних букв ASCII могут выглядеть верно в нескольких кодировках, поэтому их недостаточно для проверки остального файла.

Небольшой образец для сравнения

Для демонстрационного теста можно создать три поля: имя, код и примечание. Имя — 李明, код — 001234, примечание — короткая китайская фраза. Это тестовые данные, а не реальная запись клиента. Храните ожидаемый текст рядом с файлом, чтобы сравнивать одни и те же значения после каждого импорта или экспорта.

Если поле содержит разделитель или внутренний перенос строки, программа записи CSV должна правильно заключить его в кавычки. Поэтому число текстовых строк не всегда равно числу записей: ячейка в кавычках может содержать перенос. Сравнивайте фактически разобранные строки и столбцы, а не объявляйте файл полным лишь потому, что видимое число строк выглядит правдоподобно.

После преобразования откройте новый файл, явно выбрав UTF-8, и сравните контрольные значения. Затем проверьте импорт в приложении, которому файл действительно предназначен. Даже при правильной кодировке разделитель или порядок столбцов может не соответствовать ожидаемому процессу.

Формат для следующего этапа

UTF-8 с BOM полезен в некоторых сценариях непосредственного открытия в Excel, поскольку сигнатура помогает распознать кодировку. Другой импортёр может ожидать UTF-8 без BOM. Универсально лучшего варианта нет: используйте требования следующего приложения и проверяйте те же характерные строки.

BOM не восстанавливает текст, который неправильно декодировали ещё до экспорта. Если уже в предпросмотре видны неверные символы, остановитесь до сохранения и исправьте выбор исходной кодировки. Добавление сигнатуры UTF-8 к ошибочному тексту лишь пометит новый файл, в котором останется та же ошибка.

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

Распознавание утраченной информации

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

Комментарии

Загрузка…

Комментариев пока нет.