2011-12-08 6 views
3

私はUTF-8とActionMailerのいくつかの問題に直面しています。私のアプリケーションは、提出されたときに私に電子メールを送信するフォーム(連絡先)を持っています。問題は、誰かがöäüßのようないくつかの文字を入力したときに、私は理解したように、私は、例えばのように符号化されたメッセージutf-8とActionMailer

=?UTF-8?Q?funktioniert_oder_nicht.=0D=0A=0D=0Ameine_Stra=C3=9Fe_ist_die?= 
=?UTF-8?Q?_Bratwurststra=C3=9Fe=0D=0A=0D=0A=C3=B6=C3=A4?= 

を受けることを、デフォルトあたりactionmailerのは、UTF-8準備ができています。私のサーバからのログを分析して、フォームが提出されたら、パラメータはすでにエンコードされています(ログにÜüöを読むことができます)。

何を変更すればよいですか? ISO-8859-1をサポートするアプリケーションを変更する必要がありますか?

環境:ルビー1.9と3.1

+0

のRuby 1.8または1.9? 1.9はあなたのためにユニコード処理を行うべきです。 – Reactormonk

+0

アクションメールの表示の上部に '#coding:utf-8'を設定しようとしました。 –

+0

はすでにあります。 Webサーバのログには、パラメータがUTF-8であることが示されています。問題はメーラーの設定自体に関連していると思います。 –

答えて

4

レールあなたはUTF-8バイトがquoted-printableでエスケープなっています。

ß "\ XC3 \ x9F" である - > "= C3 = 9F"

String#unpack('M')はそれをデコードします:

$ ruby -e 'puts "Bratwurststra=C3=9Fe=0D=0A=0D=0A=C3=B6=C3=A4".unpack "M"' 
Bratwurststraße 

öä 

`