Китайський 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, і звірте контрольні значення. Потім перевірте імпорт у програмі, яка справді прийматиме файл. Навіть за правильного кодування роздільник або порядок стовпців може не відповідати очікуваному процесу.

Формат для наступного кроку

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

BOM не відновлює текст, який був неправильно декодований ще до експорту. Якщо попередній перегляд уже показує хибні символи, зупиніться перед збереженням і виправте вибір початкового кодування. Додавання сигнатури UTF-8 лише позначить новий файл, який і далі міститиме неправильний текст.

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

Розпізнавання втраченої інформації

Якщо збережений файл уже містить символи заміни або звичайні знаки питання замість китайського тексту, інше кодування може не повернути оригінал. Зверніться до незміненої копії або попросіть новий експорт. Конвертер може заново інтерпретувати наявні байти, але не відтворити перезаписаний текст, якого більше немає.

Коментарі

Завантаження…

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