CSV 파일을 생성하고이를 브라우저로 다시 스트림하는 JAX-RS REST 서비스가 있습니다. 모든 것은 UTF-8로 설정되어 있기 때문에, 브라우저를 통해 다운로드 한 파일도 유효하고 읽기 쉬운 UTF-8 움라우트 등을 보여주는 유효한 UTF-8 파일 (메모장 + +, Sublime 등)입니다.브라우저 다운로드에서 UTF-8 BOM 유지
엑셀에서 이러한 파일을 열면 엑셀이 분명히 다른 문자셋 (CP-1252로 열려고 시도하지만 분명히 중요하지는 않습니다) 때문에 읽을 수없는 움라우트 등이 생깁니다.
메모장을 통해 BOM 파일을 저장하고 ++에서 다시 열면 멋지게 작동합니다. Excel에서 UTF-8을 탐지하는 유일한 방법은 BOM 감지와 같습니다. 어쨌든 - BOM을 추가하면 도움이 될 것이라고 생각했는데 ...
그랬습니까. 같은 결과. 잠시 후 BOM이 일부 상황에서 제거된다는 것을 알았습니다. BOM 앞에 문자를 추가하면 Hex 편집기에서 BOM을 볼 수있었습니다. 그 캐릭터를 제거한 후에, BOM은 더 이상 존재하지 않을 것입니다.
나는 cURL을 통해 파일을 다운로드하고 다운로드 할 때 정말 놀랐습니다. BOM이 거기에 있었다! 그때까지는 응용 프로그램, Content-Types, Encodigs, HTTP Headers 등과 관련이 있을지도 모른다고 생각했지만 그 모두가 괜찮은 것 같습니다.
이제 다양한 작업을 시도한 후 브라우저에서 BOM을 유지하는 방법을 알 수있는 아이디어가 있습니까? 설정할 수있는 HTTP 헤더가 있습니까? Chrome, Internet Explorer, Edge, Firefox는 모두 BOM을 제거하기 때문에 브라우저 컨벤션과 비슷합니다.
감사의 말씀을드립니다.
편집 : sideshowbarker의 대답 덕분에, 나는 내용이 BOM을 앞에 추가하여 해결 방법을 발견, 그래서 첫 번째 BOM 브라우저에 의해 제거됩니다 후 남은 BOM있을 것입니다.
감사합니다.이 게시물은 정말 유용하고 약간의 해결 방법으로 안내합니다 : 처음 3 바이트 만 읽으므로 이제는 다운로드 후에 BOM 파일과 함께 유효한 UTF-8을 생성하는 콘텐츠에 두 개의 BOM이 추가됩니다 . 기록을 위해 나는 그 해결 방법으로 질문을 갱신 할 것이다. –