我有一封 SMTP 电子邮件,其中一部分是日语,一部分是英语。 电子邮件的主题采用 UTF-8、base64 编码。
主题:=?UTF-8?B?5Y2K5bCO5L2T6KO96YCg6KOF572u44OX44Os44OT44Ol44O844OO44O8?= =?UTF-8?B?44OIIDog5b6M5bel56iL44Oh44O844Kr44O844GM5by344GE?=
如何检测这是否是日文/中文并将其解码为日文/中文。
我可以用 Perl/Java/Python 实现这个目标吗?
最佳答案
这里有两个步骤。首先解码 header :
如果您有电子邮件,请使用高级电子邮件解析器,例如 Courriel 。 subject
accessor将返回解码后的主题。
如果您只有字符串,请使用 Encode::MIME::Header :
use Encode qw(decode);
decode 'MIME-Header', 'Subject: =?UTF-8?B?5Y2K5bCO5L2T6KO96YCg6KOF572u44OX44Os44OT44Ol44O844OO44O8?= =?UTF-8?B?44OIIDog5b6M5bel56iL44Oh44O844Kr44O844GM5by344GE?='
__END__
Subject: 半導体製造装置プレビューノート : 後工程メーカーが強い
第二步是找出语言。作为一个人,我已经知道这是日本人了。 kana字符是线索,它们只出现在日语写作中。如果这就是您所需要的,那么如果字符串匹配 \p{Kana}
,很可能是日语。
对于更通用的解决方案,您可以使用语言检测库,例如 Lingua::Identify <强> ::CLD , Lingua::Ident , Lingua::Lid , Lingua::YALI , WebService::Google::Language .
关于java - 从 UTF-8 base64 编码识别日语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17313021/