1

Windows-1255 でエンコードされたヘブライ文字を含む受信メールを処理しようとしています。

コンテンツの例:

From: =?windows-1255...
Subject: =?windows-1255...
...

--Boundary_(ID_/GX/qGlPt4gpL8Dqc2zQQg)
Content-type: text/plain;   charset="windows-1255"
Content-transfer-encoding: quoted-printable
...

件名は「שאלה - לאאור צדוק」のはずですが、代わりに「שאלה - ליאור צדו」です。つまり、最後の文字が削除されます。名前も同じですFrom

この問題は、同じ問題を説明している Iconv リストで見つけました。最後の言葉は次のとおりです。

In the original code snippet, there's a call to 
    iconv(the_iconv, NULL, NULL, &utf8, &bytes_written);
missing at the end. 

これは、入力の最後に追加することの重要性を強調するRuby Iconv ドキュメント (この Gist にコピーしました) と一致しています。nil

私のコードではArray、Iconv のバージョンまたはブロック バージョンを使用していません。私は常にIconv.iconvヘルパー メソッドを使用します。これは、あなたのために を追加nilします。TMail ソースを確認したところ、同じIconv.iconvヘルパーが使用されています。

誰もこのようなものを見たことがありますか?

4

1 に答える 1

2

うーん、思ったより簡単でした。通話nilの最後に追加しようとしましたが、役に立ちませんでした。Iconv.iconv私が試していなかっjoinたのは、結果を呼び出すことでした。したがって、最終的な正しい結果は

Iconv.iconv(to, from, text_to_transcode, nil).join
于 2010-12-15T18:13:26.157 に答える