0

タブ区切りの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 はタブ区切り文字を無視し始めたようです。私はまだ何をすべきかわかりません。

4

0 に答える 0