Chiński CSV w Excelu: UTF-8, GBK i nieczytelne znaki

Arkusze tabel i lupa
Spis treści

Jeśli chiński CSV otwiera się jako nieczytelne symbole, najpierw zachowaj niezmienioną kopię. Plik może zawierać poprawne bajty tekstu, które Excel zinterpretował przy użyciu niewłaściwego kodowania. Nadpisanie oryginału zniekształconym tekstem może utrudnić odzyskanie danych.

CSV przechowuje tekst i separatory. Nazwa pliku nie określa wiarygodnie kodowania, a sam format nie zachowuje takiego formatowania arkusza jak skoroszyt Excela. Prawidłowy odczyt bajtów to pierwszy krok; zachowanie kodów i dat w arkuszu to osobne zadanie.

Wybór kodowania użytego przy zapisie

UTF-8 jest powszechnie używany we współczesnej wymianie tekstu. Starsze eksporty z Chin kontynentalnych mogą stosować GBK lub pokrewne kodowanie chińskie, a niektóre pliki z tradycyjnymi znakami — Big5. Sam wygląd tradycyjnego zapisu nie dowodzi jednak użycia Big5: pliki Unicode mogą zawierać oba rodzaje pisma.

Jeśli to możliwe, zapytaj nadawcę o kodowanie eksportu. Gdy nie jest znane, sprawdzaj dostępne warianty w podglądzie i oglądaj rzeczywiste słowa, rzadkie imiona oraz interpunkcję. Przyjęcie bajtów przez dekoder bez błędu nie jest dowodem poprawnego wyboru.

Schemat: 中文: UTF-8 E4 B8 AD E6 96 87; GBK D6 D0 CE C4

Podgląd importu tekstu w Excelu

Zamiast polegać na dwukrotnym kliknięciu, użyj importu tekstu lub CSV w Excelu. W aktualnych wersjach desktopowych zwykle znajduje się on na karcie Dane, w opcji importu Tekst/CSV. Wybierz kodowanie źródłowe i separator, sprawdź podgląd, a dopiero potem załaduj tabelę. Nazwy menu mogą zależeć od wersji i języka.

Znacznik kolejności bajtów UTF-8, czyli BOM, może pomóc Excelowi rozpoznać UTF-8 przy bezpośrednim otwieraniu pliku. To sygnatura kodowania na początku pliku, a nie część nazwy pierwszej kolumny. Niektóre kolejne systemy oczekują UTF-8 bez BOM, dlatego dobierz wynik do aplikacji, która go odbierze.

Konwersja czytelnego podglądu do UTF-8

  1. Otwórz kopię do 5 MB w konwerterze kodowania chińskich plików.
  2. Wybierz faktyczne kodowanie źródłowe i przeczytaj podgląd.
  3. Sprawdź kilka chińskich nazw lub opisów, a nie tylko nagłówek.
  4. Wyeksportuj UTF-8, wybierając BOM, jeśli wymaga tego aplikacja odbierająca.
  5. Ponownie otwórz wynik i porównaj reprezentatywne wiersze z oryginałem.

Zmiana rozszerzenia albo dodanie BOM nie zamienia bajtów GBK na UTF-8. Konwersja musi najpierw poprawnie zdekodować tekst źródłowy, a następnie zakodować ten tekst w formacie docelowym.

Ochrona zer początkowych i długich kodów

Nawet gdy chiński tekst wygląda poprawnie, Excel może potraktować kod jako liczbę lub datę. Podczas importu ustaw odpowiednie kolumny jako tekstowe. Identyfikator 001234 powinien zachować sześć znaków; wyświetlenie go jako 1234 oznacza utratę informacji.

Różnice szerokości znaków także mogą utrudniać dopasowanie danych. Jeśli jeden plik zawiera A123, a drugi A123, świadomie zastosuj konwersję szerokości do tego pola. Nie naprawi to kodowania i nie powinno być bezrefleksyjnie stosowane do całych tekstów.

Rozróżnienie trzech typowych objawów

Widoczny problemCo sprawdzić najpierw
Chińskie nazwy zmieniają się w niepowiązane symboleŹródłowe kodowanie znaków
Tekst jest czytelny, ale trafia do jednej długiej kolumnySeparator i cudzysłowy
001234 zmienia się w 1234Typ danych kolumny

Te problemy mogą wystąpić jednocześnie, lecz mają różne przyczyny. Wybór UTF-8 nie rozdzieli samodzielnie pliku ze średnikami, jeśli importer oczekuje przecinków. Wybór separatora nie odzyska błędnie zdekodowanych znaków chińskich. Tekstowy typ kolumny chroni identyfikatory, ale nie ustala pierwotnego kodowania pliku.

Sprawdzaj podgląd w tej kolejności: czytelność tekstu, poprawne granice pól i właściwe typy kolumn. Użyj kilku wierszy z chińskim tekstem, kodem zaczynającym się od zera i polem z interpunkcją. Nagłówek z samych liter ASCII może wyglądać poprawnie w kilku kodowaniach, więc nie wystarcza do potwierdzenia reszty pliku.

Mała próbka do porównania

Przykładowy plik testowy może mieć trzy pola: imię, kod i uwagę. Imię może brzmieć 李明, kod 001234, a uwaga być krótką chińską frazą. To dane testowe, nie rzeczywisty rekord klienta. Zachowaj oczekiwany tekst obok pliku, aby porównywać te same wartości po każdym imporcie lub eksporcie.

Jeśli pole zawiera separator pliku albo wewnętrzny podział wiersza, program zapisujący CSV musi prawidłowo ująć je w cudzysłowy. Liczba linii tekstu nie zawsze odpowiada więc liczbie rekordów: komórka w cudzysłowie może zawierać nową linię. Porównuj faktycznie odczytane wiersze i kolumny, zamiast uznawać plik za kompletny tylko dlatego, że widoczna liczba linii wygląda wiarygodnie.

Po konwersji otwórz nowy plik, jawnie wybierając UTF-8, i porównaj wartości próbki. Następnie przetestuj import w aplikacji, która rzeczywiście będzie go odbierać. Plik może mieć poprawne kodowanie, a mimo to używać separatora lub kolejności kolumn niezgodnej z oczekiwaniami danego procesu.

Format wyjściowy do następnego kroku

UTF-8 z BOM pomaga w niektórych przypadkach bezpośredniego otwierania w Excelu, ponieważ sygnatura ułatwia rozpoznanie kodowania. Inny importer może oczekiwać UTF-8 bez BOM. Żadna opcja nie jest zawsze lepsza: użyj formatu wymaganego przez następną aplikację i sprawdź go na tych samych reprezentatywnych wierszach.

BOM nie naprawia tekstu błędnie zdekodowanego przed eksportem. Jeśli już podgląd pokazuje niewłaściwe znaki, zatrzymaj się przed zapisem i popraw wybór kodowania źródłowego. Dodanie sygnatury UTF-8 jedynie oznaczy nowy plik, który nadal będzie zawierał błędny tekst.

Jeśli potrzebujesz formuł, wielu arkuszy, stylów komórek lub rozbudowanej struktury, CSV nie zastąpi skoroszytu. Gdy te funkcje są ważne, zachowaj skoroszyt jako dokument roboczy, a CSV eksportuj na konkretny etap przesyłania danych. Udana konwersja tekstu nie oznacza zachowania wszystkich możliwości arkusza kalkulacyjnego.

Rozpoznanie utraconych informacji

Jeśli zapisany plik zawiera już znaki zastępcze lub zwykłe znaki zapytania w miejscu chińskiego tekstu, zmiana kodowania może go nie przywrócić. Wróć do nienaruszonego oryginału albo poproś o nowy eksport. Konwerter może ponownie zinterpretować istniejące bajty, ale nie odtworzy nadpisanego tekstu, którego już nie ma.

Komentarze

Ładowanie…

Brak komentarzy.