2

奇妙なエラーで戦っているim。メールの件名と本文に別々のフリーマーカーテンプレートを使用しています。org.springframework.mail.javamail.JavaMailSenderを使用して送信されます。私のアプリケーションでは、いくつかの特別なスウェーデン語の文字を含むテンプレートのみが機能します(はい、正しく読んでください...その逆ではありません)。削除すると、メールの内容がクラッシュします。次に含まれています:

MIME-Version: 1.0
Content-Type: text/html;charset=UTF-8
Content-Transfer-Encoding: 7bit

..
html code here
..

私のfreemarker.propertiesファイル

locale=sv_SE
classic_compatible=false

number_format=
date_format=yyyy-MM-dd
time_format=HH:mm
datetime_format=yyyy-MM-dd HH:mm
output_encoding=UTF-8

url_escaping_charset=UTF-8

auto_import=spring.ftl as spring
auto_include=
default_encoding=UTF-8
localized_lookup=true
strict_syntax=true
whitespace_stripping=true
template_update_delay=10

dos2unixツールを使用してサブジェクトファイルを変換しようとしました。'find -bi subject.ftl'を使用すると、エンコーディングがus-asciiであることを示します。特殊文字が追加されています-utf-8。

このことは私にとって驚くほど奇妙です...

//解決策::set bombvimでファイルを使用して保存します。

4

1 に答える 1

1

@freakmanのリクエストに従って、私はコメントを回答として投稿します-問題を解決することが判明したので:

テンプレートファイルの先頭にBOM(Byte Order Mark)を追加して、常にUTF-8テンプレートとして解析されるようにします。

参考までに、UTF-8のBOMは次のとおりです。

  • 16進数: EF BB BF
  • ISO-8859-1エンコード
  • Java:byte[] bom = { (byte) 0xEF, (byte) 0xBB, (byte) 0xBF};
于 2012-11-12T10:58:42.663 に答える