我有一个Perl脚本,由第三方调用来发送注册我的软件的人的姓名。其中一些方面会使用UTF-8编码这些名称,因此我已经相应地修改了我的脚本,使用Encode::decode_utf8(...)将UTF-8解码为ASCII。
通常情况下,这个方法是有效的,但每隔6个月左右,其中一个名称包含西里尔字母、希腊字母或罗马尼亚字符,因此对该名称进行解码会导致垃圾字符,例如“ПодражанÑкає。我必须跟进客户,并要求他提供他的姓名的“拉丁字符版本”,以便发放注册码。
那么,是否有任何Perl模块可以检测是否存在这样的字符,并在必要时自动将它们转换为最接近的ASCII表示形式?
似乎我可以使用Lingua::Cyrillic::Translit::ICAO加上Lingua::DetectCharset来处理西里尔字母,但我更喜欢能够处理其他字符集的东西。
通常情况下,这个方法是有效的,但每隔6个月左右,其中一个名称包含西里尔字母、希腊字母或罗马尼亚字符,因此对该名称进行解码会导致垃圾字符,例如“ПодражанÑкає。我必须跟进客户,并要求他提供他的姓名的“拉丁字符版本”,以便发放注册码。
那么,是否有任何Perl模块可以检测是否存在这样的字符,并在必要时自动将它们转换为最接近的ASCII表示形式?
似乎我可以使用Lingua::Cyrillic::Translit::ICAO加上Lingua::DetectCharset来处理西里尔字母,但我更喜欢能够处理其他字符集的东西。