Không chính thức, hầu hết chúng ta hiểu rằng có các tệp 'nhị phân' (tệp đối tượng, hình ảnh, phim, tệp thực thi, định dạng tài liệu độc quyền, v.v.) và tệp 'văn bản' (mã nguồn, tệp XML, tệp HTML, email, v.v.) .Làm cách nào để phân biệt giữa các tệp 'nhị phân' và 'văn bản'?
Nói chung, bạn cần phải biết nội dung của tệp để có thể làm bất kỳ điều gì hữu ích với nó và tạo quan điểm đó nếu mã hóa là 'nhị phân' hoặc 'văn bản', nó không quan trọng . Và tất nhiên các tệp chỉ lưu trữ các byte dữ liệu để chúng là tất cả 'nhị phân' và 'văn bản' không có nghĩa là bất cứ điều gì mà không biết mã hóa. Tuy nhiên, vẫn còn hữu ích khi nói về các tệp 'nhị phân' và 'văn bản', nhưng để tránh xúc phạm bất kỳ ai có định nghĩa không chính xác này, tôi sẽ tiếp tục sử dụng dấu ngoặc kép 'sợ hãi'.
Tuy nhiên, có nhiều công cụ khác nhau hoạt động trên nhiều loại tệp và về mặt thực tế, bạn muốn làm điều gì đó khác nhau dựa vào việc tệp có phải là 'văn bản' hay 'nhị phân' hay không. Một ví dụ về điều này là bất kỳ công cụ nào xuất dữ liệu trên bảng điều khiển. Plain 'text' sẽ trông ổn và hữu dụng. dữ liệu 'nhị phân' làm hỏng thiết bị đầu cuối của bạn và thường không hữu ích khi xem xét. GNU grep ít nhất sử dụng sự khác biệt này khi xác định xem nó có nên xuất khớp với giao diện điều khiển hay không.
Vì vậy, câu hỏi đặt ra là, làm cách nào để bạn biết tệp có phải là 'văn bản' hay 'nhị phân'? Và để hạn chế là hơn nữa, làm thế nào để bạn nói trên một Linux như hệ thống tập tin? Tôi không biết bất kỳ siêu dữ liệu hệ thống tập tin nào chỉ ra 'loại' của một tệp, do đó, câu hỏi tiếp tục trở thành, bằng cách kiểm tra nội dung của tệp, làm cách nào để biết đó là 'văn bản' hay 'nhị phân'? Và để đơn giản, hãy hạn chế 'văn bản' có nghĩa là các ký tự có thể in được trên bảng điều khiển của người dùng. Và cụ thể là cách bạn triển khai điều này? (Tôi nghĩ rằng điều này được ngụ ý trên trang web này, nhưng tôi đoán nó hữu ích, nói chung, được chỉ vào mã hiện có thực hiện điều này, tôi nên có quy định), tôi không thực sự sau những chương trình hiện tại tôi có thể sử dụng để làm điều này.
bạn không nói "phần mềm của chúng tôi" là gì, làm chậm quá trình phân tích cú pháp của con người. – vwvan