Tôi có nhiều email đến từ các nguồn khác nhau. tất cả đều có tệp đính kèm, nhiều người trong số họ có tên tệp đính kèm bằng tiếng Trung, vì vậy các tên này được chuyển đổi thành base64 bởi ứng dụng email của họ.cách để biết chuỗi có phải là base64 hay không
Khi tôi nhận được những email này, tôi muốn giải mã tên. nhưng có những tên khác là không phải base64. Làm cách nào tôi có thể phân biệt chuỗi có phải là base64 hay không, sử dụng ngôn ngữ lập trình jython?
Tức là.
tập tin đính kèm Đầu tiên:
------=_NextPart_000_0091_01C940CC.EF5AC860
Content-Type: application/vnd.ms-excel;
name="Copy of Book1.xls"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="Copy of Book1.xls"
thứ hai tập tin đính kèm:
------=_NextPart_000_0091_01C940CC.EF5AC860
Content-Type: application/vnd.ms-excel;
name="=?gb2312?B?uLGxvmhlbrixsb5nLnhscw==?="
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="=?gb2312?B?uLGxvmhlbrixsb5nLnhscw==?="
Xin lưu ý cả "Content-Transfer-Encoding" có base64
Tôi sẽ đoán triển vọng tạo ra nó .... không chắc chắn – Setori
Tôi đã thử chỉ cần gọi tập tin đính kèm chỉ bằng '=? Gb2312? B? ULGxvmhlbrixsb5nLnhscw ==? =' Nhưng không may nó chỉ sụp đổ và phàn nàn cay đắng, tôi không biết tại sao , có thể nhìn vào khiếu nại đó sẽ giải quyết vấn đề nhanh hơn, nhờ bobince đánh giá cao nó – Setori
Điều gì phàn nàn và khi nào? Hệ điều hành có thể sẽ khó chịu nếu bạn thực sự lưu một tệp với tên đó, chắc chắn, nhưng bất cứ khi nào bạn lấy tên tệp từ đầu vào của người dùng, bạn sẽ cần một số bộ lọc rất nghiêm ngặt để giữ các ký tự nguy hiểm - tốt nhất chỉ cho phép [a -zA-Z0-9_] (và bắt một chuỗi rỗng quá). – bobince