Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
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.