Защо CSV показва странни символи в Excel
Объркването с кодирането зад повредените букви с диакритика и три начина да го оправите.
Отваряте CSV в Excel и имена като Müller или José се показват със странни знаци на мястото на буквите с диакритика. Знаците за евро и апострофите също се превръщат в купчинки странни символи. С данните ви няма нищо нередно. Excel чете файла с грешно кодиране на символите.
Какво се случва
Текстовият файл е просто байтове, а кодирането е правилото, по което байтовете се превръщат в букви. Почти всяка съвременна система записва CSV файловете в UTF-8, което обхваща всички езици. Excel за Windows, когато щракнете два пъти върху CSV, все още приема по-старо регионално кодиране като Windows-1252, освен ако файлът не започва с малък маркер, наречен маркер за реда на байтовете, или BOM. Без BOM всеки символ извън обикновения английски се декодира по грешното правило и всяка буква с диакритика излиза като два или три безсмислени знака.
Данните са непокътнати. Отворете същия файл в Google Sheets, Numbers или текстов редактор и той изглежда наред.
Решение 1: добавете BOM
Ако файлът е коректен UTF-8 и само Excel го показва грешно, прекарайте го през инструмента за поправяне на кодирането с включена опция за BOM. Символите не се променят, но маркерът казва на Excel да чете UTF-8 и оттам нататък файлът се отваря правилно с двойно щракване.
Решение 2: конвертирайте в истински Excel файл
При файла .xlsx изобщо няма двусмислие с кодирането. Конверторът от CSV към Excel чете CSV файла правилно и записва работна книга, която се отваря коректно навсякъде. Той запазва и водещите нули в пощенските кодове и телефонните номера, които Excel премахва, когато отваря CSV директно.
Решение 3: импортирайте вместо да щракате два пъти
В Excel използвайте Data, From Text/CSV и задайте File Origin на 65001: Unicode (UTF-8). Тогава Excel чете файла правилно. Това работи, но трябва да го помните всеки път, затова първите две решения са по-практични за файлове, които споделяте.
Когато самият файл е повреден
Понякога повредените символи са записани във файла. Това се случва, когато някой е отворил UTF-8 файл в Excel, видял е бъркотията и го е запазил отново. Сега безсмислените знаци са самите данни. Ще виждате проблема във всяка програма, не само в Excel. Инструментът за поправяне на кодирането има режим за поправка точно за този случай: той обръща двойното кодиране на UTF-8 и възстановява оригиналните букви. Автоматичният му режим разпознава този случай в повечето файлове.
Бърза диагностика
| Какво виждате | Вероятна причина | Решение |
|---|---|---|
| Грешно само в Excel, наред другаде | Липсва BOM | Добавете BOM или конвертирайте в .xlsx |
| Грешно във всяка програма | Файлът е запазен, след като е бил прочетен грешно | Поправете двойното кодиране |
| Въпросителни знаци или квадратчета | Файлът е запазен в старо кодиране на Windows | Конвертирайте от Windows-1252 към UTF-8 |
Как да го предотвратите
- Когато експортирате от Excel, изберете CSV UTF-8 вместо обикновен CSV.
- Когато експортирате от други системи за потребители на Excel, включете BOM, ако има такава опция.
- Никога не запазвайте наново CSV, който изглежда повреден. Първо поправете кодирането.