Thậm chí bạn sẽ không cần bộ ký tự. 'text/plain' có thể không chính xác, bởi vì nó cũng không thực sự là văn bản.
Mặc dù nó tương thích với ascii, utf-8, latin1 (như ruakh được đề cập), bạn chỉ nên coi đó là tệp nhị phân.
Cập nhật
tôi muốn làm rõ điều này một chút (sau khi tất cả các downvotes, guys chung cho tôi một cơ hội!)
@ dan04: UTF-8 là văn bản, tôi đã không nói không phải vậy. Base64 không phải là, base64 cũng là một mã hóa, nhưng nó có thể mã hóa bất kỳ chuỗi nhị phân nào. Base64 được mã hóa theo cách mà nó có thể bọc nó trong US-ASCII (và do đó cũng là UTF-8 và latin1/ISO-8859).
Base64 vẫn chỉ là chuỗi nhị phân, chứ không phải theo văn bản định nghĩa. Thực tế là cùng một loạt các giá trị octet được sử dụng như US-ASCII (và 'printable' bởi bất cứ thứ gì đọc US-ASCII) không làm cho nó thành văn bản.
Đây cũng là lý do tại sao Base64 không có mimetype riêng. Nó được coi là một mã hóa chuyển nội dung. (nhìn lên!)
Vì vậy, cách chính xác thực sự để phân phát Base64 với mimetype của chuỗi chứa, cùng với tiêu đề Mã hóa-Chuyển mã hóa. Ví dụ, nếu bạn đang mã hóa một jpeg, đây là định dạng đúng.
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
Đây cũng là lý do tại sao tôi không muốn nói bất cứ điều gì về nội dung của chuỗi (hoặc không có thông tin này), tốt nhất là coi đó là 'binary binary', ví dụ:
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Bạn không nên báo giá xung quanh phần văn bản/đồng bằng hoặc utf8. – Quentin
@quentin Cảm ơn. Tôi thực sự không biết nó ... –
Tôi vẫn cảm thấy câu trả lời được chấp nhận là sai (mặc dù tôi đã bị downvoted). Tôi đã làm rõ câu trả lời của mình một chút, quan tâm xem xét lại? – Evert