jpmobile/jpmobile — pull request #87 by mshibuya (2014-12-19 03:58:03+00:00)
Title: NKF.guessが特定のUTF-8文字列についてEncoding:ASCII-8BITを返す問題に対応

UTF-8絵文字と特定の記号を同時に含むメールの受信時にEncoding::InvalidByteSequenceErrorが発生しておりまして、原因を追ったところ`NKF.guess`がエンコーディング判定に失敗しているためと判明しました。
```irb
1.9.3-p545 :002 > NKF.guess "\u{1F384}\u2763"
=> #
```
この`NKF.guess`して`Jpmobile::Util.correct_encoding`する一連の流れはもともと c556e9aa8a42622e25b8ffd3bcfd55512d1c6d88 で導入されており、その時の[convert_encoding_jpmobile](https://github.com/jpmobile/jpmobile/blob/c556e9aa8a42622e25b8ffd3bcfd55512d1c6d88/lib/jpmobile/mail.rb#L236)の実装では`subject_charset`をメール全体のcharsetとみなしていたため、SubjectとBodyのエンコーディングが異なる場合にうまく対応できず、その回避策としてBodyのエンコーディングをNKF.guessにより判別しそれっぽく処理する実装になっていたものと考えられます。

ただ、#70 のPull Requestによりsubject_charsetとBodyのcharsetを個別に扱えるよう変更が加わっていますので、このfailsafe procedureはもはや不要なはずです。逆に誤検出による問題が出てきてしまうため、この処理を取り除き、#84 でmerge頂いたISO-2022-JP半角カナ問題対策は`Jpmobile::Util.force_encode`に移すよう変更を加えました。

ご確認のほどよろしくお願いします。