私はアプリケーションの一部を開発しており、そのアプリケーションはいくつかのデータをCSVファイルにエクスポートする役割を担っています。このアプリケーションは、すべてのレベルで多言語に対応しているため、常にUTF-8を使用しています。しかし、そのようなCSVファイル(例えば、発音記号、チリ文字、ギリシャ文字を含む)をエクセルで開いても、期待した結果は得られず、「Г"/Г¤、Г-/Г¶」のように表示されます。また、開いているCSVファイルがUTF-8でエンコードされていることをExcelに理解させる方法もわかりません。また、UTF-8のBOMを「EF BB BF」と指定してみましたが、Excelはこれを無視します。
回避策はありますか?
追伸:Excelと同じような動作をする可能性のあるツールを教えてください。
UPDATE
私は質問の定型化でコミュニティを混乱させてしまったと言わざるを得ません。私がこの質問をしたとき、私は、ユーザーにとって問題なく、流暢で透明性のある方法で、UTF-8のCSVファイルをExcelで開く方法を求めました。しかし、私はそれを automatically で行うことを求める間違った処方を使用しました。これは非常に紛らわしく、VBAマクロの自動化と衝突してしまいます。この質問に対して、私が最も感謝している2つの回答があります。それは、Alex https://stackoverflow.com/a/6002338/166589 による最初の回答で、私はこの回答を受け入れました。そして、少し後に登場したMark https://stackoverflow.com/a/6488070/166589 による2番目の回答です。ユーザビリティの観点からは、ExcelにはユーザーフレンドリーなUTF-8のCSVサポートが不足しているように思えたので、どちらの回答も正しいと考えています。私がここで_automatically_と混同したのはその点です。Markさんの回答は、より上級者が期待する結果を得るためのより複雑な方法を提案しています。どちらの回答も素晴らしいですが、Alex'さんの回答の方が、私の明確に指定されていない質問に少し合っています。
UPDATE 2
最後の編集から5ヶ月後、私はAlex'の回答が何らかの理由で消えてしまったことに気づきました。技術的な問題ではないことを願っていますし、どちらの回答が優れているかという議論がこれ以上起こらないことを願っています。なので、Markさんの回答をベストなものとして受け入れます。
アレックスの言う通りですが、csvにエクスポートする必要があるので、csvファイルを開く際にユーザーにこのようなアドバイスをすることができます。
1.エクスポートしたファイルをcsvとして保存する 2. エクセルを開く 3. Data-->Import External Data-->Import Data を使用してデータをインポートします。 4. ファイルタイプを"csv"を選択し、ファイルを参照します。 5. インポートウィザードでFile_Originを"65001 UTF"(または正しい言語の文字識別子を選択)に変更します。 6. デリミタをカンマに変更する。 7. インポート先を選択して終了
こうすることで、特殊文字が正しく表示されるようになります。