从UTF-8 base64编码中识别日语

use*_*619 0 java perl smtp utf-8

我有一个日语的SMTP电子邮件,有些是英文的.电子邮件的主题以UTF-8,base64编码.

对象:=?UTF-8?B?5Y2K5bCO5L2T6KO96YCg6KOF572u44OX44Os44OT44O1440844004O8O8 = =?UTF-8≤B≤440Iidog5b6M5bel56iL44Oh44O844Kr44O844GM5by344GE?=

如何用日语/中文检测这个并将其解码为日文/中文.

我可以在Perl/Java/Python中实现这一点吗?

dax*_*xim 5

你有两个步骤.首先解码标题:

如果您有电子邮件,请使用Courriel等高级电子邮件解析器.该subject访问将返回解码的主题.

如果您只有字符串,请使用Encode :: MIME :: Header:

use Encode qw(decode);
decode 'MIME-Header', 'Subject: =?UTF-8?B?5Y2K5bCO5L2T6KO96YCg6KOF572u44OX44Os44OT44Ol44O844OO44O8?= =?UTF-8?B?44OIIDog5b6M5bel56iL44Oh44O844Kr44O844GM5by344GE?='
__END__
Subject: ??????????????? : ??????????
Run Code Online (Sandbox Code Playgroud)

第二步是找出语言.作为一个人,我已经可以说这是日本人.该假名字符的线索,他们只发生在日语书写.如果这就是你所需要的,那么如果字符串匹配\p{Kana},则可能是日语.

对于更通用的解决方案,您使用语言检测库,如Lingua :: Identify :: CLD,Lingua :: Ident,Lingua :: Lid,Lingua :: YALI,WebService :: Google :: Language.