Oddělovač patří k formátu
CSV obvykle odděluje pole čárkami, TSV tabulátory. Rozdíl začne vadit, když hodnota sama obsahuje čárku, tabulátor, uvozovku nebo konec řádku. RFC 4180 popisuje běžnou podobu CSV: pole s čárkou může být ve dvojitých uvozovkách a uvozovka uvnitř se zdvojí. TSV nemá stejné chování v každém programu, takže záleží na požadavcích příjemce. Nástroje MultiVerto nejprve rozpoznají buňky a poté zapíší nový oddělovač; nenahrazují bez rozmyslu interpunkci v surovém textu. Všechny řádky musí mít stejný počet buněk. Viditelnou mezeru si nepleťte s tabulátorem.
Sledujte citované pole
Vyzkoušejte dva řádky: položka,poznamka a potom pero,"červené, modré". Čárka v poznámce je obsah, nikoli třetí sloupec. Po převodu CSV na TSV odděluje tabulátor název od poznámky a pero od textu červené, modré; vnitřní čárka zůstane běžným znakem. Zapisovač může vnější uvozovky vynechat, protože čárka v TSV neodděluje buňky. Kdyby pole obsahovalo tabulátor nebo nový řádek, výstup by je musel chránit. Výsledek otevřete v editoru, který zobrazuje tabulátory; na webu mohou vypadat jako mezery.
- CSV: pero,"červené, modré"
- dvě buňky: pero | červené, modré
- TSV: pero [tab] červené, modré
Nejdřív zjistěte cílový program
CSV zvolte, když partner výslovně požaduje čárky a známá pravidla citování. TSV se může hodit při mnoha čárkách uvnitř dat, ale vložené tabulátory zůstávají citlivé. Pokud cíl potřebuje strukturované záznamy, převod CSV na JSON pomůže prohlédnout hodnoty s názvy sloupců. Datové typy se však nezachovají automaticky; mnoho importů čte buňky jako text. Tabulkový program může změnit úvodní nuly, dlouhé identifikátory nebo řetězce podobné datům. Samotná změna oddělovače tomu nezabrání. Prověřte nastavení importu a srovnejte vzorek s originálem.
Pozor na vzorce v cizích buňkách
CSV i TSV jsou data, ale tabulkový program může buňku začínající některými znaky vyhodnotit jako vzorec. Export hodnot od dalších lidí je proto samostatnou bezpečnostní otázkou. Tento převodník mění oddělovače a uvozovky; neočišťuje buňky pro tabulkový program a nečiní stažený soubor bezpečným. Jestliže tabulka obsahuje cizí vstupy, použijte ochrany cílového importu a pravidla exportu své aplikace. Výměna čárky za tabulátor neodstraní nebezpečný znak na začátku buňky. U citlivého souboru ověřte, jaký program ho otevře a zda zachová doslovný text všech hodnot.
Kontrolujte zpětný převod
Původní soubor uchovejte. Reprezentativní vzorek převeďte do TSV a zpět do CSV; porovnejte rozpoznané buňky, nikoli nutně shodné bajty. Neškodné uvozovky či konce řádků se mohou lišit. Prověřte hlavičky, počet řádků, prázdné buňky, vložené oddělovače a zalomení. Při následném převodu na JSON se podívejte, který řádek se stal klíči a zda hodnoty vypadající jako čísla zůstaly řetězci. Identifikátor s úvodní nulou není číslo určené k zaokrouhlení. Začněte ukázkou níže a tytéž obtížné řádky vyzkoušejte v cílovém programu před zpracováním celé tabulky.
Vedle oddělovače si dohodněte také kódování znaků. Čte-li program jiné kódování, než jaké vytvořil zapisovač, diakritika se může poškodit, i když sloupce zůstávají správné. Při importu prověřte, zda příjemce očekává hlavičku a jak rozlišuje prázdnou buňku od chybějícího sloupce. Převod mezi CSV a TSV tato pravidla sám neurčí. Malý testovací soubor s diakritikou, prázdnou hodnotou a citovanou čárkou ukáže víc problémů než zkouška jen s jednoduchými čísly.