Tôi có một tập lệnh Perl đang được bên thứ ba gọi để gửi cho tôi tên của những người đã đăng ký phần mềm của tôi. Một trong những bên này mã hóa các tên trong UTF-8, vì vậy tôi đã điều chỉnh kịch bản của tôi cho phù hợp để giải mã UTF-8 thành ASCII với Encode :: decode_utf8 (...).Làm cách nào để chuyển đổi các ký tự không phải ASCII được mã hóa theo UTF8 thành ASCII tương đương trong Perl?
Điều này thường hoạt động tốt, nhưng cứ sau 6 tháng, một trong các tên có chứa ký tự cyrillic, greek hoặc rumani, do đó giải mã các kết quả tên trong các ký tự rác như "ĐŸŸ Ñ ". Tôi phải theo dõi với khách hàng và yêu cầu anh ta cho một "phiên bản nhân vật latin" của tên của mình để phát hành một mã số đăng ký.
Vì vậy, có bất kỳ mô-đun Perl nào có thể phát hiện xem có các ký tự như vậy và tự động dịch chúng sang biểu diễn ASCII gần nhất của chúng nếu cần thiết không?
Có vẻ như tôi có thể sử dụng Lingua :: Cyrillic :: Translit :: ICAO cộng với Lingua :: DetectCharset để xử lý Cyrillic, nhưng tôi thích thứ gì đó hoạt động với các bộ ký tự khác.
Chỉ là những gì tôi đang tìm kiếm - Cảm ơn! :-) –