0

日本語で一部英語の SMTP メールがあります。メールの件名は UTF-8、base64 でエンコードされています。

件名: =?UTF-8?B?5Y2K5bCO5L2T6KO96YCg6KOF572u44OX44Os44OT44Ol44O844OO44O8?= =?UTF-8?B?44OIIDog5b6M5bel56iL44Oh44O844Kr44O844GM5by344GE?=

これが日本語/中国語かどうかを検出し、日本語/中国語にデコードするにはどうすればよいですか?

Perl/Java/Python でこれを実現できますか?

4

3 に答える 3

5

ここには 2 つのステップがあります。最初にヘッダーをデコードします。

電子メールがある場合は、Courrielなどの高レベルの電子メール パーサーを使用します。subjectアクセサーは、デコードされたサブジェクトを返します。

文字列だけがある場合は、Encode::MIME::Headerを使用します。

use Encode qw(decode);
decode 'MIME-Header', 'Subject: =?UTF-8?B?5Y2K5bCO5L2T6KO96YCg6KOF572u44OX44Os44OT44Ol44O844OO44O8?= =?UTF-8?B?44OIIDog5b6M5bel56iL44Oh44O844Kr44O844GM5by344GE?='
__END__
Subject: 半導体製造装置プレビューノート : 後工程メーカーが強い

2番目のステップは、言語を見つけることです。人間として、これは日本人であるとすでに判断できます。仮名文字は手がかりであり、日本語の文章でのみ発生します. それだけで、文字列が に一致する場合は、\p{Kana}日本語である可能性が高くなります。

より一般的な解決策として、Lingua::Identify ::CLDLingua::IdentLingua::LidLingua::YALIWebService::Google::Languageなどの言語検出ライブラリを使用します。

于 2013-06-26T14:11:37.627 に答える