タブ区切りのutf8のExcelファイルを書きたいです。私の PrintWriter は次のようになります。
Charset utf8Charset = Charset.forName("UTF-8");
OutputStreamWriter osw = new OutputStreamWriter(os, utf8Charset);
PrintWriter printWriter = new PrintWriter(new BufferedWriter(osw, BUFFER_SIZE));
そのため、utf8 でシンボルを記述する必要があるようです。しかし、xls を開くと、無効な文字がいくつか表示されます。
UTF8の問題のようです。そこで、情報を書き込む前に UTF8 BOM をファイルに追加することにしました。そして、Excelはこれを私に示しました:
しかし興味深いのは、CSV ファイルの書き込み ("," 区切り記号を使用) に同じアプローチ (UTF8 BOM を追加) を使用した場合、うまく機能したことです。助けていただければ幸いです、ありがとう!
編集: バグを再現しましたが、レポート内の情報が異なります (列名が異なります)。とにかく、ここに16進数が私に示しているものがあります
UTF8 BOM を含むファイル:
UTF8 BOM なしの同じファイル:
UTF8 BOM を追加した後、Excel はタブ区切り文字を無視し始めたようです。私はまだ何をすべきかわかりません。