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

标签 java perl utf-8 smtp

我有一封 SMTP 电子邮件,其中一部分是日语,一部分是英语。 电子邮件的主题采用 UTF-8、base64 编码。

主题:=?UTF-8?B?5Y2K5bCO5L2T6KO96YCg6KOF572u44OX44Os44OT44Ol44O844OO44O8?= =?UTF-8?B?44OIIDog5b6M5bel56iL44Oh44O844Kr44O844GM5by344GE?=

如何检测这是否是日文/中文并将其解码为日文/中文。

我可以用 Perl/Java/Python 实现这个目标吗?

最佳答案

这里有两个步骤。首先解码 header :

如果您有电子邮件,请使用高级电子邮件解析器,例如 Courrielsubject 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/

相关文章:

java - java类中的run或main函数有什么区别

python - 语法错误 : Non-UTF-8 code starting with '\x91'

java - Android Bottomsheet对话框如何设置下边距

java - C语言中如何让数组的第二行指向第一行

java - 使 JDialog 按钮响应 Enter 键

python - 正则表达式匹配两个单词之间的多行文本,包括单词

perl - DBIx::Class 使用函数更新 Inflate 列

algorithm - 在 Perl 中,每 N 个字符插入一个字符的最佳方法

javascript - 警告中带有重音符号的错误字符并使用 Phonegap/Cordova 进行确认

windows - 用于在同一项目上使用 Windows 和 Linux 的 eclipse 字符集