Miks CSV näitab Excelis imelikke märke
Kodeeringusegadus moonutatud täpitähtede taga ja kolm viisi selle parandamiseks.
Avad CSV-faili Excelis ja nimed nagu Müller või José ilmuvad täpitähtede asemel kummaliste sümbolitega. Ka eurotähised ja ülakomad muutuvad imelike märkide kobarateks. Sinu andmetega pole midagi valesti. Excel loeb faili vale märgikodeeringuga.
Mis toimub
Tekstifail on lihtsalt baidid ja kodeering on reegel, mille järgi baidid tähtedeks muudetakse. Peaaegu iga tänapäevane süsteem kirjutab CSV-failid UTF-8 kodeeringus, mis saab hakkama iga keelega. Windowsi Excel eeldab CSV-failil topeltklõpsu tegemisel endiselt vanemat piirkondlikku kodeeringut, näiteks Windows-1252, välja arvatud juhul, kui fail algab väikese märgisega, mida nimetatakse baidijärjestuse märgiks ehk BOM-iks. Ilma BOM-ita dekodeeritakse iga märk väljaspool lihtsat inglise tähestikku vale reegliga ja iga täpitäht tuleb välja kahe või kolme rämpsmärgina.
Andmed on terved. Ava sama fail Google Sheetsis, Numbersis või tekstiredaktoris ja see näeb korras välja.
1. lahendus: lisa BOM
Kui fail on korrektne UTF-8 ja ainult Excel näitab seda valesti, lase see läbi kodeeringu parandamise tööriista, BOM-i valik sisse lülitatud. Märgid jäävad muutumatuks, kuid märgis ütleb Excelile, et lugeda tuleb UTF-8, ja edaspidi avaneb fail topeltklõpsuga õigesti.
2. lahendus: teisenda päris Exceli failiks
.xlsx-failil pole kodeeringuga mingit mitmetähenduslikkust. CSV-st Exceliks teisendaja loeb CSV-faili õigesti ja salvestab töövihiku, mis avaneb igal pool korralikult. See säilitab ka eesnullid postiindeksites ja telefoninumbrites, mille Excel CSV-faili otse avades eemaldab.
3. lahendus: impordi topeltklõpsu asemel
Kasuta Excelis valikut Data, From Text/CSV ja määra File Origin väärtuseks 65001: Unicode (UTF-8). Seejärel loeb Excel faili õigesti. See töötab, kuid pead seda iga kord meeles pidama, mistõttu kaks esimest lahendust on jagatavate failide puhul praktilisemad.
Kui fail ise on kahjustatud
Mõnikord salvestatakse moonutatud märgid faili sisse. Nii juhtub, kui keegi avas UTF-8 faili Excelis, nägi segadust ja salvestas selle uuesti. Nüüd ongi rämpsmärgid andmed. Näed probleemi igas programmis, mitte ainult Excelis. Kodeeringu parandamise tööriistal on just selleks parandusrežiim: see pöörab topeltkodeeringu tagasi ja taastab algsed tähed. Selle automaatrežiim tuvastab selle olukorra enamikus failides.
Kiirdiagnoos
| Mida näed | Tõenäoline põhjus | Lahendus |
|---|---|---|
| Vale ainult Excelis, mujal korras | BOM puudub | Lisa BOM või teisenda .xlsx-failiks |
| Vale igas programmis | Fail salvestati pärast valesti lugemist | Paranda topeltkodeering |
| Küsimärgid või kastikesed | Fail salvestati vanas Windowsi kodeeringus | Teisenda Windows-1252-st UTF-8-ks |
Kuidas seda vältida
- Excelist eksportides vali tavalise CSV asemel CSV UTF-8.
- Teistest süsteemidest Exceli kasutajatele eksportides lisa BOM, kui see valik on olemas.
- Ära kunagi salvesta uuesti CSV-faili, mis paistab moonutatud. Paranda kõigepealt kodeering.