Jak zjistit codepage u textových souborů?

2 odpovědi řadit od nejnovějších

13. 12. 2017 • 9:11

Poslední dobou se mi u mnoha textových souborů (txt,csv,doc...) po otevření nezobrazuje kódová stránka správně.Týká se to cz znaků, které jsou nahrazené jinými. Čím to může být? Tyto dokumenty jsem ani neměnil, ani nijak neupravoval. OS je Win7_64-pro.Dá se zjistit kódování před otevřením souboru? Nebo existuje nejaký hromadný konvertor pro konverzi např. do unicode?děkuji za každou raduPetr

13. 12. 2017 • 9:36

Stručně řečeno, pokud má soubor kódování UTF-8 ,ale neobsahuje tzv. BOM neboli signaturu, aplikace jejich kódování dopředu nenačte a nezobrazí znaky (typicky ty české s háčky) správně, protože zkrátka neví jak. Kódování zobrazuje většina txt editorů ve stavovém řádku. Je možno signaturu doplnit uložením souboru jako "utf-8 with bom".Nebo hromadně pro všechny .txt soubory ve složce např. příkazem (unix):sed -i.bak '1s/^\(\xef\xbb\xbf\)\?/\xef\xbb\xbf/' *txt(zjistí zda soubor obsahuje bom > vytvoří zálohu > přidá bom)Pro win si jistě příkaz najdeš sám. A co se týče výpisu seznamu souborů a jejich kódování, nejjednodušší by to asi bylo přes PS1 skript.Kromě toho existují i jednoúčelové gui utilitky, např. CpConverter (win) a další.---------------------------------------Souborů s kódováním ANSI se tohle netýká, tam ale zase rozhoduje národní sada. Aby se cz. znaky zobrazovaly správně, je třeba aby Ukázat celý příspěvek

13. 12. 2017 • 9:43

ANSI soubory nemají žádný identifikátor, podle kterého bys to poznal. Tam můžeš postupovat podle výskytu typických znaků, případně určit váhu znaků, spočítat a pak nějaká kódová stránka vyhraje. Tohle jsem dělal v poslední verzi PSpadu (verze 5, ke stažení ve fóru) a docela úspěšně detekuju nejrůznější ANSI soubory, včetně čínštiny, arabštiny a dalších exotických jazyků. Je tam i hromadná změna kódové stránky.Unicode v sobě mají na začátku BOM - identifikátor. To )plně neplatí pro UTF-8, kde se používá jak s BOM tak i bez něj, ale UTF-8 se dá jednoduše detekovat - je to kódování, založené na matematických pravidlech.

Určitě si přečtěte

Články odjinud