Cách phát hiện mã ký tự trong Python

Cách phát hiện mã ký tự trong Python

Aspose.HTML FOSS cho Python phát hiện bộ mã ký tự từ các byte thô theo cách các tiêu chuẩn quy định: đánh dấu thứ tự byte trước, sau đó là các khai báo trong nội dung. Hướng dẫn này sẽ quét một luồng byte và chuẩn hoá các nhãn mã, sử dụng pip để cài đặt.

Hướng dẫn từng bước

Bước 1: Cài đặt gói

git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .

Bước 2: Nhập các hàm cần thiết

from aspose_html.encoding.detection import detect_encoding

Bước 3: Phát hiện bộ mã của luồng byte

Một UTF-8 BOM được phát hiện với độ tin cậy nhất định, và các byte BOM được loại bỏ khỏi văn bản đã giải mã:

result = detect_encoding(b"\xef\xbb\xbf<p>x</p>")
print(result.encoding)
print(result.confidence)
print(result.text)

Bước 4: Chuẩn hoá Nhãn Mã hoá

Các nhãn kế thừa được ánh xạ tới các tên chuẩn — latin1, iso-8859-1 và us-ascii đều là windows-1252 theo tiêu chuẩn mã hoá. Sử dụng get_canonical_name() từ cùng một họ mô-đun để chuẩn hoá các nhãn trước khi so sánh.

Các Vấn đề Thường gặp và Giải pháp

Một BOM xuất hiện trong văn bản đã giải mã của tôi. Điều đó xảy ra khi giải mã thủ công; detect_encoding() loại bỏ các byte BOM khỏi result.text.

Việc so sánh mã hoá thất bại đối với các nhãn tương đương. So sánh tên chuẩn, không phải nhãn thô — chuẩn hoá cả hai phía bằng get_canonical_name().

Một mã hoá kỳ lạ gây ra lỗi. Các mã hoá ngoài danh sách đăng ký gây ra lỗi đã được gõ UnsupportedEncodingError; xử lý nó và mã hoá lại ngược dòng nếu có thể.

Câu hỏi thường gặp

detect_encoding trả về gì?

Một EncodingDetectionResult với encoding được phát hiện, mức confidence, và text đã được giải mã.

Phát hiện có xem xét các thẻ meta không?

Có — quá trình quét trước meta chuẩn tham gia thông qua prescan_meta_charset() khi không có BOM.

Tôi có thể giải mã thủ công khi đã biết mã hoá không?

Có — decode_bytes() giải mã với mã hoá đã chọn.

Xem thêm

 Tiếng Việt