Gần đây tôi đã thực hiện các email đến cho một ứng dụng và chàng trai, tôi đã mở cổng địa ngục chưa? Kể từ đó, mỗi ngày có một email đến khiến ứng dụng bị lỗi theo một cách khác.
Một trong những điều đó là các email được mã hóa dưới dạng UTF-7. Hầu hết các email đến dưới dạng ASCII, một số mã hóa tiếng Latinh, hoặc may mắn thay, UTF-8.
Thông báo lỗi Hotmail (như địa chỉ email không tồn tại hoặc vượt quá hạn ngạch) dường như đến dưới dạng UTF-7. Thật không may, UTF-7 không phải là mã hóa mà Ruby hiểu:
> "hello world".encode("utf-8", "utf-7")
Encoding::ConverterNotFoundError: code converter not found (UTF-7 to UTF-8)
> Encoding::UTF_7
=> #<Encoding:UTF-7 (dummy)>
Ứng dụng của tôi không gặp sự cố, nó thực sự xử lý email khá tốt, nhưng nó sẽ gửi cho tôi một thông báo về lỗi tiềm ẩn.
Tôi đã dành một chút thời gian để googling và tôi không thể tìm thấy bất kỳ ai thực hiện chuyển đổi, ít nhất là không phải là Mã hóa Ruby 1.9.3.
Vì vậy, câu hỏi của tôi là, vì tôi chưa bao giờ nhận được email có nội dung thực tế, từ một người thực tế, trong UTF-7, mã hóa đó có liên quan như thế nào? Tôi có thể yên tâm bỏ qua nó?