Dlaczego CSV pokazuje w Excelu dziwne znaki
Pomyłka w kodowaniu, która stoi za krzakami zamiast liter, i trzy sposoby naprawy.
Otwierasz CSV w Excelu, a nazwiska takie jak Łukasiewicz czy Żółkiewski pojawiają się z dziwnymi symbolami zamiast polskich liter. Znaki euro i apostrofy też zamieniają się w grupki dziwnych znaków. Z Twoimi danymi wszystko jest w porządku. Excel po prostu czyta plik w złym kodowaniu znaków.
Co się dzieje
Plik tekstowy to tylko bajty, a kodowanie to reguła zamiany bajtów na litery. Prawie każdy nowoczesny system zapisuje pliki CSV w UTF-8, który obsługuje każdy język. Excel w Windows po dwukrotnym kliknięciu CSV nadal zakłada jednak starsze kodowanie regionalne, na przykład Windows-1250, chyba że plik zaczyna się od małego znacznika zwanego znacznikiem kolejności bajtów, czyli BOM. Bez BOM każdy znak spoza podstawowego alfabetu łacińskiego jest dekodowany według złej reguły, a każda litera z ogonkiem wychodzi jako dwa lub trzy przypadkowe znaki.
Dane są nienaruszone. Otwórz ten sam plik w Arkuszach Google, Numbers lub edytorze tekstu, a będzie wyglądał dobrze.
Sposób 1: dodaj BOM
Jeśli plik jest poprawnym UTF-8, a źle pokazuje go tylko Excel, przepuść go przez narzędzie do naprawy kodowania z włączoną opcją BOM. Znaki się nie zmieniają, ale znacznik mówi Excelowi, żeby czytał UTF-8, i od tej pory plik otwiera się poprawnie także po dwukrotnym kliknięciu.
Sposób 2: przekonwertuj na prawdziwy plik Excela
Plik .xlsx w ogóle nie ma niejasności z kodowaniem. Konwerter CSV na Excel poprawnie odczytuje CSV i zapisuje skoroszyt, który wszędzie otwiera się dobrze. Zachowuje też zera wiodące w kodach pocztowych i numerach telefonów, które Excel obcina przy bezpośrednim otwieraniu CSV.
Sposób 3: importuj zamiast klikać dwukrotnie
W Excelu użyj Dane, Z pliku tekstowego/CSV i ustaw Pochodzenie pliku na 65001: Unicode (UTF-8). Wtedy Excel odczyta plik poprawnie. To działa, ale trzeba o tym pamiętać za każdym razem, dlatego przy plikach, które udostępniasz, praktyczniejsze są dwa pierwsze sposoby.
Gdy sam plik jest uszkodzony
Czasem krzaki są zapisane w pliku. Dzieje się tak, gdy ktoś otworzył plik UTF-8 w Excelu, zobaczył bałagan i zapisał go ponownie. Teraz te dziwne znaki są danymi. Problem zobaczysz wtedy w każdym programie, nie tylko w Excelu. Narzędzie do naprawy kodowania ma tryb naprawy właśnie na taką sytuację: odwraca podwójne kodowanie i przywraca oryginalne litery. Tryb automatyczny wykrywa ten przypadek w większości plików.
Szybka diagnoza
| Co widzisz | Prawdopodobna przyczyna | Rozwiązanie |
|---|---|---|
| Źle tylko w Excelu, gdzie indziej dobrze | Brak BOM | Dodaj BOM albo przekonwertuj na .xlsx |
| Źle w każdym programie | Plik zapisano po błędnym odczycie | Napraw podwójne kodowanie |
| Znaki zapytania lub kwadraciki | Plik zapisany w starym kodowaniu Windows | Konwertuj z Windows-1252 na UTF-8 |
Jak temu zapobiegać
- Przy eksporcie z Excela wybieraj „CSV UTF-8” zamiast zwykłego CSV.
- Przy eksporcie z innych systemów dla użytkowników Excela dodawaj BOM, jeśli jest taka opcja.
- Nigdy nie zapisuj ponownie CSV, który wygląda na zepsuty. Najpierw napraw kodowanie.