Tôi có một vài tệp nguồn C ++ (một .cpp và một .h) đang được báo cáo là loại dữ liệu bằng file
lệnh trong Linux. Khi tôi chạy file -bi
lệnh chống lại các tệp này, tôi được cung cấp đầu ra này (cùng một đầu ra cho mỗi tệp):
application/octet-stream; charset=binary
Mỗi tệp rõ ràng là văn bản đơn giản (tôi có thể xem chúng trong vi
). Điều gì gây ra file
để báo cáo sai loại tập tin này? Nó có thể là một số loại Unicode? Cả hai tệp này đều được tạo trong Windows-Land (sử dụng Visual Studio 2005), nhưng chúng đang được biên dịch trong Linux (đây là một ứng dụng đa nền tảng).
Có những câu chuyện mới trên trang chủ.
Cập nhật : Tôi không thấy bất kỳ ký tự null nào trong cả hai tệp. Tôi đã tìm thấy một số ký tự mở rộng trong tệp .cpp (trong khối nhận xét), đã xóa chúng, nhưng file
vẫn báo cáo cùng mã hóa. Tôi đã thử buộc mã hóa trong SlickEdit, nhưng dường như điều đó không có tác dụng. Khi tôi mở tập tin trong vim
, Tôi thấy một [converted]
ngay khi tôi mở tập tin. Có lẽ tôi có thể lấy vim để buộc mã hóa?
NUL
hộp (hoặc tìm kiếm \0
với các phép biến đổi dấu gạch chéo ngược).
file -e soft filename
?