Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako rozpoznať formát súboru UTF8?

Neexistuje jediný, spoľahlivý spôsob, ako definitívne identifikovať súbor UTF-8 výlučne z jeho obsahu. Mnoho formátov súborov môže obsahovať text kódovaný UTF-8 * v nich, ale samotný súbor nie je vo svojej podstate „UTF-8“ spôsobom, že `.jpg` je JPEG. Existujú však silné ukazovatele:

Silné ukazovatele (ale nie záruky):

* bajtská objednávka (bom): Súbor UTF-8 * by mohol začať * BOM (značka bajtového poriadku), čo je sekvencia `EF BB BF` v hexadecimal. Prítomnosť tohto kusovníka je veľmi silným návrhom (ale nie zárukou), že súbor je kódovaný ako UTF-8. Mnoho redaktorov ho automaticky pridáva, ale niektorí nie, a jeho prítomnosť môže byť v niektorých kontextoch dokonca problematická (na začiatku spôsobuje neočakávané znaky).

* Rozsah znakov: Preskúmajte bajtové hodnoty obsahu súboru. Zatiaľ čo UTF-8 môže predstavovať akýkoľvek znak Unicode, bajtové sekvencie sú štruktúrované. Ak sa stretnete s bajtovými sekvenciami mimo toho, čo je povolené v UTF-8 (napr. Neplatné viacbajtové sekvencie), určite to nie je * nie * UTF-8. Avšak * všetky * bajty sú v povolenom rozsahu nezaručujú UTF-8. Mohli by ste mať binárny súbor, ktorý náhodou obsahuje iba platné sekvencie bajtov UTF-8.

Metódy na kontrolu:

1. Použite textový editor s podporou Unicode: Väčšina moderných textových redaktorov (Poznámkový blok ++, Sublime Text, Vs Code atď.) A automaticky zistí kódovanie súboru, keď ho otvoríte. Často zobrazujú kódovanie v stavovom riadku alebo vlastnostiach súborov. Toto je najjednoduchšia a najspoľahlivejšia metóda jednoduchých textových súborov.

2. Použite príkaz `file` (linux/macos): Príkaz `File` môže často identifikovať kódovanie textového súboru. Napríklad:

`` `Bash

File myFile.txt

`` `

Mohlo by to výstup niečo ako:`myfile.txt:utf-8 unicode text` alebo` myfile.txt:ascii text`. Upozorňujeme, že presnosť závisí od heuristiky príkazu `File`, ktorá nemusí byť vždy dokonalá.

3. Programovo skontrolovať (python): Môžete napísať krátky program na kontrolu kusovníka alebo sa pokúsiť dekódovať súbor pomocou UTF-8. Ak dekódovanie zlyhá, nie je to UTF-8. Úspešné dekódovanie však definitívne nedokazuje, že je UTF-8.

`` `Python

importovať kodeky

def is_utf8 (názov súboru):

skúsiť:

s kodecs.open (názov súboru, 'r', 'utf-8') ako f:

f.read ()

návrat pravda # Úspešné dekódovanie

Okrem UnicodedecodeError:

návrat false # dekódovanie zlyhalo

filename ="myFile.txt"

Ak je IS_UTF8 (názov súboru):

Print (f "{filename} je pravdepodobne kódovaný UTF-8.")

inak:

Print (f "{filename} nie je kódovaný UTF-8.")

`` `

v súhrne: Aj keď môžete získať silné náznaky o tom, či je súbor pravdepodobne kódovaný UTF-8, neexistuje žiadna absolútna záruka bez ďalšieho kontextu alebo metadát. Spoliehanie sa na automatickú detekciu textového editora alebo príkaz `File` je zvyčajne najpraktickejší prístup. Programový prístup je užitočný, keď potrebujete väčšiu kontrolu a zvládnete vlastné neistoty.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené