English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Puede usar el paquete de herramientas chardet para determinar el tipo de codificación de archivos y cadenas de caracteres en python, que puede identificar la mayoría de los tipos de codificación. Pero hace unos días, al leer un archivo txt guardado en Bloc de notas de Windows, GBK fue identificado como KOI8-R, sin solución.
Luego escribí un método simple de reconocimiento de codificación, el código es el siguiente:
coding.py
# Nota: UTF compatible con ISO8859-1y ASCII, GB18030 compatible con GBK, GBK compatible con GB2312,GB2312compatible con ASCII CODES = ['UTF-8', 'UTF-16', 'GB18030', 'BIG5'] # UTF-8 BOM prefijo de bytes UTF_8_BOM = b'\xef\xbb\xbf' # Obtener el tipo de codificación del archivo def file_encoding(file_path): """ Obtener el tipo de codificación del archivo\n :param file_path: Ruta del archivo\n :return: \n """ with open(file_path, 'rb') as f: return string_encoding(f.read()) # Obtener el tipo de codificación de caracteres def string_encoding(b: bytes): """ Obtener el tipo de codificación de caracteres\n :param b: Datos de bytes\n :return: \n """ # Recorrer los tipos de codificación 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 de codificación de caracteres desconocido'
Notas:file_encodingEl método se utiliza para determinar el tipo de codificación del archivo, el parámetro es la ruta del archivo;string_encodingEl método se utiliza para determinar el tipo de codificación de la cadena, el parámetro es los datos de bytes correspondientes a la cadena
Ejemplo de uso:
import coding file_name = input('Por favor, ingrese la ruta del archivo a identificar: \n') encoding = coding.file_encoding(file_name) print(encoding)
Este ejemplo de cómo determinar el tipo de codificación de archivo y cadena de Python que el editor comparte con todos ustedes es todo el contenido que tengo. Espero que les sirva de referencia y espero que todos lo apoyen más aulas de gritos.
Declaración: el contenido de este artículo se ha obtenido de la red, pertenece al autor original, el contenido se ha contribuido y subido por los usuarios de Internet por su propia iniciativa, este sitio web no posee los derechos de propiedad, no se ha realizado la edición humana y no asume la responsabilidad legal correspondiente. Si encuentra contenido sospechoso de infracción de derechos de autor, le invitamos a enviar un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, por favor reemplace # con @ para denunciar, y proporcione la evidencia relevante. Una vez que se compruebe, este sitio eliminará inmediatamente el contenido sospechoso de infracción de derechos de autor.)