Excel în CSV fără diacritice stricate: UTF-8, BOM și separatori
Cele mai multe diacritice stricate dintr-un CSV vin dintr-o nepotrivire de codificare: fișierul este salvat în UTF-8, dar deschis ca o codificare Windows. Exportă foaia ca CSV UTF-8, cu marcaj de ordine a octeților (BOM) dacă programul care va deschide fișierul este Excel, și alege separatorul așteptat de setările regionale. Înainte de export, formatează coloanele precum codurile poștale și numerele de telefon ca text, ca zerourile să se păstreze.
Excel în CSVAm nevoie de CSV, am un fișier ExcelÎncearcă gratuitDe ce „é” devine „é”
Un caracter dintr-un fișier este stocat ca octeți. În UTF-8, litera é are doi octeți, C3 și A9. Un program care citește acești octeți ca Windows-1252, o codificare Windows frecventă, vede caracterul à în loc de C3 și © în loc de A9. Așadar „café” apare ca „café”. Poți verifica singur: dacă codifici é în UTF-8 și decodezi rezultatul ca Windows-1252, obții é. Același lucru se întâmplă cu ü, ñ sau ö.
Soluția nu este să editezi caracterele. Este să spui programului ce codificare folosește fișierul.
UTF-8 și BOM
UTF-8 este codificarea standard pentru text pe web și în majoritatea programelor moderne. Un fișier CSV simplu nu are un câmp care să spună ce codificare folosește, așa că programele ghicesc. Un marcaj de ordine a octeților (BOM) înseamnă trei octeți la începutul fișierului, EF BB BF, care semnalează UTF-8 programelor care îl caută. Excel pe Windows deschide adesea un fișier UTF-8 fără BOM folosind codificarea locală, de aceea BOM-ul este remediul frecvent.
În versiunile recente de Excel, meniul Salvează ca oferă opțiunea CSV UTF-8, care adaugă BOM-ul. Poți importa și fișierul prin Date, From Text/CSV, setând File Origin la 65001, UTF-8. BOM-ul are un dezavantaj: un program care nu-l așteaptă îl poate trata ca parte din numele primei coloane. Majoritatea parserelor și programelor de calcul tabelar se descurcă, dar dacă un importator de date raportează un antet ciudat, elimină BOM-ul.
Virgulă sau punct și virgulă
CSV înseamnă „comma-separated values”, iar specificația RFC 4180 descrie câmpuri separate prin virgule. În multe țări, inclusiv cele care folosesc virgula zecimală, cum ar fi 1,5 pentru un număr și jumătate, separatorul de liste din Excel este punctul și virgula. Atunci, un fișier cu virgule deschis în Excel se poate împărți greșit, iar un număr precum 1,5 devine două câmpuri.
Alege separatorul pe care îl așteaptă programul-țintă. Instrumentul Excel în CSV oferă virgulă, punct și virgulă și tab. Dacă fișierul este pentru un program din setări regionale cu virgulă zecimală, punctul și virgula este de obicei alegerea mai sigură.
Datele devin numere de serie
Excel stochează datele ca numere de serie, numărând zilele de la un punct de plecare. În sistemul de date 1900, 1 ianuarie 1900 este seria 1. Excel tratează și 1900 ca an bisect, așa că numără o zi de 29 februarie 1900, care nu a existat, ca seria 60. Astfel, 1 martie 1900 devine seria 61, iar toate datele ulterioare se deplasează cu o zi. Eroarea vine de la Lotus 1-2-3, iar Microsoft a păstrat același sistem din motive de compatibilitate. Alte programe pot citi datele dinaintea de 1 martie 1900 cu o zi diferență.
La exportul unei date, s-ar putea să vezi 44927 în loc de 2023-01-01, sau o zi în plus sau în minus la datele vechi. Instrumentul transformă datele în text lizibil. Dacă exporti manual, formatează coloana de date ca text în forma ISO yyyy-mm-dd, pe care fiecare program o citește la fel.
Zerourile din față dispar
Un cod poștal precum 02134 este text, dar Excel tratează un număr tastat ca număr, deci afișează 2134. Zeroul dispare din foaie, iar CSV-ul scris din ea nu îl va avea nici el. Numerele de telefon care încep cu 0 și numerele lungi de identificare suferă la fel. Numerele foarte lungi pot pierde și cifre, pentru că Excel păstrează doar aproximativ 15 cifre semnificative.
Remediul este să stochezi aceste coloane ca text înainte de a introduce sau importa datele. Când deschizi un CSV care are deja zerourile, folosește Date, From Text/CSV și setează coloana pe Text, în loc să faci dublu clic pe fișier.
Reguli de ghilimele
RFC 4180 definește formatul CSV comun. Principalele reguli de ghilimele sunt:
- Un câmp care conține o virgulă, o ghilimea dublă sau o întrerupere de rând trebuie pus între ghilimele duble.
- O ghilimea dublă dintr-un câmp cu ghilimele se scrie ca două ghilimele duble.
- Rândurile se termină cu CRLF în specificație, deși majoritatea instrumentelor acceptă LF.
De exemplu, rândul "Müller, Anna","She said ""ok""" are două câmpuri: Müller, Anna și She said "ok". Tipul MIME înregistrat la IANA pentru CSV este text/csv.
RFC 4180 nu permite o ghilimea dublă într-un câmp fără ghilimele, iar multe parsere resping un astfel de rând sau îl împart greșit. Pune câmpul corect între ghilimele sau elimină caracterul rătăcit.
Listă de verificare înainte de export
- Exportă ca CSV UTF-8, cu BOM dacă fișierul va fi deschis în Excel.
- Alege separatorul pe care îl așteaptă programul-țintă.
- Formatează coloanele de tip identificator, precum codurile poștale și numerele de telefon, ca text.
- Scrie datele ca yyyy-mm-dd.
- Deschide fișierul într-un editor de text simplu și verifică prima linie și un eșantion de nume cu diacritice.
Caracterele ascunse, precum spațiile fără spargere, pot cauza și ele erori la import. Instrumentul Elimină caractere ascunse le găsește și le elimină, iar caractere ascunse în text explică de unde provin. Odată ce fișierul este curat, CSV în JSON poate converti datele pentru un dezvoltator, cum se arată în CSV în JSON și înapoi.
Înainte de export, merită să verifici și celulele: verificatorul de formule Excel listează formulele care afișează o eroare sau indică alt fișier, iar acestea sunt exact celulele care ajung goale într-un CSV. După export, compară cele două tabele ca să vezi ce s-a schimbat între versiuni.
Răspunsuri rapide
De ce fișierul meu arată corect într-un program și stricat în Excel? Când un fișier UTF-8 nu are BOM, Excel pe Windows îl poate citi cu codificarea locală. Adăugarea BOM-ului sau importul cu UTF-8 selectat rezolvă problema.
Au nevoie versiunile de Excel pentru Mac de BOM? Unele surse spun că da, așa că testează cu un fișier care conține un nume cu diacritice înainte de a-l trimite.
Pot repara datele după export? Da, dacă sunt încă numere de serie, dar este mai bine să le exporți de la început ca yyyy-mm-dd.
Este tabelul meu încărcat undeva când îl convertesc? Instrumentul rulează în browserul tău, așa că fișierul este procesat pe propriul dispozitiv. Poți verifica acest lucru cu ghidul de verificare a încărcărilor.
Tradus din Original în engleză cu ajutorul AI.
Comentarii
Încă nu sunt comentarii. Fii primul.


