質問

データをCSVファイルにエクスポートするJavaアプリを開発しています。これは、エンドユーザーがExcelで開くことを目的としています。エクスポート関数がJavaのプラットフォームのデフォルトエンコーディングを使用していることに気付きました。これにより、ウムラウト文字が失われ、ビルドサーバーでユニットテストが失敗します(このような潜在的な問題を正確にキャッチするために、プラットフォームのデフォルトエンコーディングとしてUS-ASCIIが設定されています)。

質問は次のとおりです。使用するのに最適なエンコーディングはどれですか? Excelはどのエンコードを使用するかをどのように決定しますか?おそらくJavaのプラットフォームのデフォルトに一致するプラットフォーム固有のものを使用しますか?

私は現在、Cp1252のハードコーディングに傾倒しています-これはターゲットマシンを対象とし(展開環境は実際に指定されています)、テストの問題を修正します。ぐるぐる回ってみると、ExcelはUTF-8をうまく処理していないようです。そのため、プラットフォームのデフォルトエンコーディングに固執するには、テストのための何らかの回避策ハックが必要になります。

役に立ちましたか?

解決

Excelはプラットフォームのデフォルトエンコーディングで正常に動作することを期待するので、一般的な場合、Excelに最適な選択肢のように思えます。プラットフォームのデフォルトがUS-ASCIIであるかどうかを確認し、代わりにCp1252を使用すること(テストのハックだと思います)は、コンパイラの警告を抑制することと概念的に同等です。この場合は適用されないことがわかっています。

ただし、実稼働展開を制御することを書いているのに、なぜCp1252をハードコードするのをためらうのですか?それがアプリケーションのターゲットエンコーディングである場合、それは完全に合理的なソリューションのようです。

他のヒント

システムロケールを(システムプロパティから)取得し、そのエンコーディングで出力ファイルを作成できます。ファイルをExcelでのみ開く場合は、Apache POIをご覧ください。

ExcelはUTF-16でうまく機能すると考えてください。 UTF-16でのエクスポートの問題点。少なくともその方法では、非ASCII文字は単に捨てるのではなく、保存されます。

OK

UTF-8は今はうまく動作するはずです。製品をスクレイピングしてからCSVとして保存し、WP All Importを使用してこのCSVをアップロードします。これはすべてXMLに変換され、すべてWP投稿としてアップロードされます。すばらしいです! jam tangan casio

をご覧ください。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top