문제

최종 사용자가 데이터를 CSV 파일로 내보내는 Java 앱을 개발하고 있습니다. 방금 내보내기 기능이 Java의 플랫폼 기본 인코딩을 사용한다는 것을 알았습니다. 이로 인해 Umlaut 문자가 손실되고 빌드 서버에서 장치가 실패하게됩니다 (이러한 잠재적 인 문제를 포착하기 위해 플랫폼 기본 인코딩으로 US-ASCII를 갖도록 구성됨).

문제는 : 사용하기에 가장 좋은 인코딩은 무엇입니까? Excel은 사용할 인코딩을 어떻게 결정합니까? 아마도 Java의 플랫폼 기본값과 일치하는 플랫폼 별을 사용합니까?

현재 하드 코딩 CP1252에 기울고 있습니다. 대상 기계를 덮어야합니다 (실제로 배포 환경이 지정되어 있음). 테스트 문제를 해결합니다. 인터넷 검색에서 Excel은 UTF-8을 잘 처리하지 못하는 것처럼 보이므로 플랫폼 기본 인코딩을 고수하려면 테스트를 위해 일종의 해결 방법 해킹이 필요합니다.

도움이 되었습니까?

해결책

나는 Excel이 플랫폼 기본 인코딩과 잘 어울릴 것으로 기대할 것이므로 일반적인 경우 Excel을위한 최상의 선택처럼 보입니다. 플랫폼 기본값이 US-ASCII인지 확인하고 대신 CP1252를 사용하는지 확인하면 (테스트의 해킹이 생각합니다) 컴파일러 경고를 억제하는 것과 동일합니다. 이 경우 적용되지 않는다는 것을 알고 있습니다.

그러나 생산 배포를 제어한다고 썼기 때문에 왜 하드 코드 CP1252를 망설입니까? 그것이 응용 프로그램의 대상 인코딩 인 경우 완벽하게 합리적인 솔루션처럼 보입니다.

다른 팁

시스템 로케일 (시스템 속성에서)을 가져 와서 해당 인코딩으로 출력 파일을 만들 수 있습니다. 파일이 Excel에서만 열리면 Apache Poi를 찾아야합니까?

Excel이 UTF-16에서 잘 작동한다고 생각하십시오. UTF-16의 내보내기에 문제가 있습니다. 최소한이 방법이 아닌 방식은 버리지 않고 보존됩니다.

편집, OK, 'Well'은 Excel이 UTF-16에서 어떻게 작동하는지 과장 할 수 있지만 UTF-16LE가 UTF-8보다 더 잘 작동하는 것 같습니다.

UTF-8은 지금 잘 작동해야합니다. 제품을 CSV로 저장하고 WP를 사용한 다음 모든 가져 오기를 사용한 다음이 CSV를 업로드 하고이 모든 것은 XML로 변환 한 다음 WP 게시물로 업로드됩니다. 엄청난! 보세요 JAM TANGAN CASIO

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top