1

xls ファイルの erb テンプレートを作成して、データを Excel にエクスポートしています。これは、適切にエンコードされたエクスポートを作成するためにRailscast 362で推奨されている手順に従っています。

出力は Excel for Mac 2011 では正常に開きますが、Excel 2007 では、é などの文字が é として表示されます。これは、UTF-8 でエンコードされたファイルが Excel によって Latin1 として解釈されるためです。

この回答によると、 Excel 2007 は正しいバイト オーダー マーク (BOM) で始まる場合、UTF-8 ファイルを正しく解釈します。

出力の 16 進バージョンを見ると、実際には BOM がないように見えます。

コントローラーでデータをインラインでレンダリングするときに BOM を追加する方法を説明するソース (この Plataformatec ブログ投稿など) がいくつかあります。

BOM = "\377\376"
BOM + Iconv.conv('utf-16le', 'utf8', data)

私の質問は、テンプレートを Excel 2007 で正しく解釈する方法はありますか? または、コントローラーでのデータのレンダリングに戻る必要がありますか?

4

1 に答える 1