Excel (예 : 2007)에서 만든 CSV 파일을 읽는 Java 앱이 있습니다. 누구든지 MS Excel에서 이러한 파일을 저장하는 데 사용되는 charset을 알고 있습니까?Microsoft Excel은 파일을 저장할 때 어떤 문자셋을 사용합니까?
나는 짐작 것 중 하나
- 창-1255 (Cp1255)
- UTF8
하지만 확장 문자를 해독 할 수없는 오전
Excel (예 : 2007)에서 만든 CSV 파일을 읽는 Java 앱이 있습니다. 누구든지 MS Excel에서 이러한 파일을 저장하는 데 사용되는 charset을 알고 있습니까?Microsoft Excel은 파일을 저장할 때 어떤 문자셋을 사용합니까?
나는 짐작 것 중 하나
하지만 확장 문자를 해독 할 수없는 오전
CSV 파일은 엑셀에서 내보내는 동안 지정된 인코딩을 옵션에 따라, 모든 형식의 수 : 엑셀 (오피스 2013을 포함 : (저장 대화 상자, 도구 버튼, 웹 옵션 항목, 인코딩 탭) UPDATE
)는 실제로 "다른 이름으로 저장 ..."대화 상자에서 선택된 웹 옵션을 존중하지 않으므로 이는 일종의 버그입니다. OpenOffice Calc를 사용하여 XLSX 파일을 열고 CSV 파일로 내보낼 수 있습니다 (필터 설정 편집, UTF-8 인코딩 선택).
OOXML Excel 2007에서 가져온 파일과 같은 파일은 위키피디아에 따르면 UTF-8로 인코딩됩니다. CSV 파일에 대해서는 알지 못하지만 동일한 형식을 사용하는 이유는 ...
지난 주 비슷한 문제가있었습니다. 다양한 인코딩으로 다수의 CSV 파일을 받았습니다. 데이터베이스로 가져 오기 전에 chardet libary을 사용하여 올바른 인코딩을 자동으로 알아 냈습니다.
Chardet은 Mozillas 문자 감지 엔진의 포트이며 샘플 크기가 충분히 큰 경우 (강조 문자 하나가 적용되지 않음) 실제로 작동합니다.
Russian Edition
은 CSV
, 및 CSV (DOS)
입니다.
CSV
으로 저장하면 windows-1251
이 사용됩니다.
Résumé
을 저장하려고 그것은
question mark
에 대한
ASCII
코드되고,
52 3F 73 75 6D 3F
처럼
HEX
에
3F
그것을 저장. 내가의
CSV
파일, 단어를 열어 물론, 읽을되었다
(R?sum?
)
CP1250는 Word 및 Excel 2003
http://en.wikipedia.org/wiki/Windows-1250
포함, Microsoft Office 문서에서 광범위하게 사용됩니다 이를 확인하는 간단한 방법은 다음과 같습니다.
예 펄 스크립트 : 메모리에서
#!perl
use strict;
use Spreadsheet::ParseExcel::Simple;
use Encode qw(decode);
my $file = "my_spreadsheet.xls";
my $xls = Spreadsheet::ParseExcel::Simple->read($file);
my $sheet = [ $xls->sheets ]->[0];
while ($sheet->has_data) {
my @data = $sheet->next_row;
for my $datum (@data) {
print decode('cp1250', $datum);
}
}
"cp1250은 Microsoft Office 문서에서 광범위하게 사용됩니다."... 목구멍에서. cp125n은 0 <= n <= 8에 대해 광범위하게 사용됩니다. –
, 엑셀은 기계 별 ANSI 인코딩을 사용합니다. 그래서 이것은 EN-US 설치의 경우 Windows-1252, 러시아어의 경우 1251 등입니다.
True이지만 Excel 2007에서는 사용자가 긴 목록에서 선택할 수 있습니다 (도구 버튼을 찾을 수 있으면!). "ANSI"가 기본값입니다. –
그것이 작동하는 방법이지만, 기능이 고장났습니다. 저장 대화 상자/도구 메뉴/웹 옵션 항목/인코딩 탭에서 선택한 "이 문서 다른 이름으로 저장 :"옵션을 사용하는 대신 Excel은 지역 및 언어 설정에서 설정된 코드 페이지 만 사용합니다. – Triynko
특수 문자가 포함 된 Excel 파일을 csv로 내보내는 것이 엉성한 일일 수는 있지만 간단히 해결할 수 있습니다. 셀을 Google 문서에 복사하여 붙여 넣은 다음 저장하면됩니다. .
프로그래밍 방식의 솔루션을 찾는 것처럼 들립니다. 복사하여 붙여 넣기는 실제로 "청구서에 적합하지 않습니다". 또한,이 질문은 꽤 오래되었습니다. 응답이 이전 응답보다 중요한 사항을 제공하지 않는 한 오래된 스레드를 다시 시작하지 않는 것이 가장 좋습니다.) – Leigh
글쎄, 그렇게 말하면. 그러나 가장 정격 된 답변은 작동하지 않으며 (주석 참조) 프로그래밍 방식의 해결책도 아닙니다. 또한, 내 솔루션이 작동합니다. 마지막으로 주제가 오래된 것일 수 있습니다. 문제가있을 때 첫 페이지에 여전히 팝업으로 표시되며 스레드에는 작동하지만 해결 방법은 없습니다. –
실제로 그 의견은 버그라고합니다. 또한 OpenOffice 또는 지역 및 언어 설정을 수정하는 두 가지 대안을 제시합니다. 그래서 나는이 제안이 이미 주어진 것보다 중요한 개선이라고 생각하지 않습니다. 이제 이후 버전 또는 프로그램 방식의 대안에서 수정 사항이있는 경우 다른 사람들이이를 듣기를 좋아할 것이라고 확신합니다. – Leigh
당신은 인코딩 얻을 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
을 ... 우리는 2017 년에 지금 그리고 아직도 엑셀은 간단한 스프레드 시트를 저장 할 수 없습니다 원래 인코딩을 유지하면서 CSV 형식으로 ... 그냥 놀라운.
운 좋게도 Google 문서 도구는 올바른 세기에 살고 있습니다. 나를위한 해결책은 Google 스프레드 시트를 사용하여 CSV로 다시 다운로드하기보다는 스프레드 시트를 열면됩니다. 결과는 올바르게 인코딩 된 CSV 파일 (모든 문자열이 UTF8로 인코딩 됨)입니다.
이고 기본 인코딩은 "ANSI"이며 대개 cp1250에서 cp1258 중 하나입니다. –
기본 인코딩은 UTF-8이지만, 이전에 선택했기 때문에 Excel이 CSV 파일을 마지막으로 저장 한 시간부터 선택 항목을 기억하고 있기 때문일 수 있습니다. 이 선택은 Excel을 닫은 후 다시 시작한 후에도 지속되는 것으로 보입니다. – Triynko
"웹 옵션"은 CSV 내보내기에 적용되지 않습니다 (적어도 Excel 2007에서는 해당). CSV 파일의 인코딩은 설치의 기본 인코딩을 따르는 것 같습니다. 그래서 실제로는 무엇이든 할 수 있습니다. 슬프게도 수출 시간에 이것을 통제 할 방법이없는 것 같습니다. – gawi