web-dev-qa-db-ja.com

ファイルを保存するときにMicrosoft Excelが使用する文字セットは何ですか?

Excelで作成されたCSVファイルを読み込むJavaアプリ(2007年など)があります。MSExcelがこれらのファイルを保存するために使用する文字セットを知っていますか?

私はどちらかを推測しているでしょう:

  • windows-1255(Cp1255)
  • ISO-8859-1
  • UTF8

これらの文字セットのいずれかを使用して拡張文字(フランス語のアクセント付き文字など)をデコードすることはできません。

60
Joel

CSVファイルは、Excelからのエクスポート中に指定されたエンコードオプションに応じて、任意の形式にすることができます:(保存ダイアログ、ツールボタン、Webオプション項目、エンコードタブ)

更新:Excel(Office 2013を含む)は、[名前を付けて保存]ダイアログで選択されたWebオプションを実際に尊重しないため、これは何らかのバグです。 OpenOffice Calcを使用してXLSXファイルを開き、CSVファイルとしてエクスポートします(フィルター設定を編集し、UTF-8エンコードを選択します)。

14
Triynko

メモリから、Excelはマシン固有のANSIエンコーディングを使用します。したがって、これはEN-USインストールの場合はWindows-1252、ロシア語の場合は1251などになります。

41
devstuff

この古いスレッドをウェイクアップしています... 2017年になりました。それでも、Excelは単純なスプレッドシートをCSV形式に保存することはできませんが、元のエンコードを保持しています...

幸い、Google Docsは適切な世紀に住んでいます。私にとっての解決策は、Googleドキュメントを使用してスプレッドシートを開き、CSVとしてダウンロードすることです。結果は、正しくエンコードされたCSVファイルです(すべての文字列はUTF8でエンコードされます)。

5
Albert Godfrind

先週も同様の問題がありました。さまざまなエンコーディングのCSVファイルを多数受け取りました。データベースにインポートする前に、 chardet libary を使用して、正しいエンコーディングを自動的に検出しました。

Chardetは、Mozillaの文字検出エンジンからの移植であり、サンプルサイズが十分に大きい場合(強調された1つの文字では機能しません)、非常にうまく機能します。

4
pi.

Russian EditionCSVCSV (Macintosh)およびCSV (DOS)を提供します。

プレーンなCSVで保存する場合、windows-1251を使用します。

フランス語の単語Résuméをロシア語のテキストと一緒に保存しようとしましたが、52 3F 73 75 6D 3FのようにHEXに保存しました。3Fquestion markASCIIコードです。

CSVファイルを開くと、もちろん、Wordは読めなくなりました(R?sum?

2
Quassnoi

Excel 2010は、File > Save As > Unicode Text (.txt)を選択した場合、UTF-16/UCS-2 [〜#〜] tsv [〜#〜]ファイルを保存します。 「.txt」という接尾辞が付いた(強制)ので、「。tsv」に変更できます。

CSVが必要な場合は、Notepad ++、Ultra Edit、Crimson EditorなどのテキストエディターでTSVファイルを変換し、タブをセミコロン、カンマなどに置き換えることができます。以下に注意してください。 DBテーブルへの読み込みについては、TSVが既に正常に機能することがよくあります(多くの場合、手動で読み込む方が簡単です)。

UTF-8などの別のコードページが必要な場合は、上記のエディターのいずれかを使用して変換します。

0
FelixD

このVisual Studio VB.Netコードを使用してエンコードを取得できます。

Dim strEncryptionType As String = String.Empty
Dim myStreamRdr As System.IO.StreamReader = New System.IO.StreamReader(myFileName, True)
Dim myString As String = myStreamRdr.ReadToEnd()
strEncryptionType = myStreamRdr.CurrentEncoding.EncodingName
0
kttii