English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Python può utilizzare il pacchetto chardet per determinare il tipo di codifica di un file e una stringa, può riconoscere la maggior parte dei tipi di codifica. Ma qualche giorno fa, leggendo un file txt salvato con Notepad di Windows, GBK è stato riconosciuto come KOI8-R, senza soluzione.
Poi ho scritto un metodo di riconoscimento di codifica semplice, il codice è il seguente:
coding.py
# Note: UTF è compatibile con ISO8859-1 e ASCII, GB18030 è compatibile con GBK, GBK è compatibile con GB2312, GB2312 è compatibile con ASCII CODES = ['UTF-8', 'UTF-16', 'GB18030', 'BIG5'] # Prefisso di byte del BOM UTF-8 UTF_8_BOM = b'\xef\xbb\xbf' # Ottieni il tipo di codifica del file def file_encoding(file_path): """ Ottieni il tipo di codifica del file\n :param file_path: Percorso del file\n :return: \n """ with open(file_path, 'rb') as f: return string_encoding(f.read()) # Ottieni il tipo di codifica dei caratteri def string_encoding(b: bytes): """ Ottieni il tipo di codifica dei caratteri\n :param b: Dati in byte\n :return: \n """ # Esempio di codifica di caratteri for code in CODES: try: b.decode(encoding=code) if 'UTF-8' == code and b.startswith(UTF_8_BOM): return 'UTF-8-SIG' return code except Exception: continue return 'Tipo di codifica di caratteri sconosciuto'
Spiegazione:file_encodingIl metodo viene utilizzato per determinare il tipo di codifica del file, il parametro è il percorso del file;string_encodingIl metodo viene utilizzato per determinare il tipo di codifica della stringa, il parametro è il dati in byte della stringa corrispondente
Esempio di utilizzo:
import coding file_name = input('Inserisci il percorso del file da identificare: \n') encoding = coding.file_encoding(file_name) print(encoding)
Questa è tutta la parte dell'esempio di Python per determinare il tipo di codifica di file e stringa condivisa dall'autore, speriamo che possa fornire una参考, e speriamo che tutti possano sostenere il tutorial URL.
Dichiarazione: il contenuto di questo articolo è stato raccolto da Internet, è di proprietà del rispettivo autore, il contenuto è stato caricato spontaneamente dagli utenti di Internet, questo sito non possiede i diritti di proprietà, non è stato editato manualmente e non assume alcuna responsabilità legale correlata. Se trovi contenuti sospetti di copyright, ti preghiamo di inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare il problema e fornire prove pertinenti. Una volta verificata, questo sito eliminerà immediatamente i contenuti sospetti di copyright.