Slack에 1MB 이하의 BOM이있는 CSV를 업로드하면 BOM이 사라집니다.

1895 단어 슬랙CSV
UTF-8 CSV를 Excel에서도 깨지지 않고 열기 위해 BOM (\uFEFF)을 붙인 CSV를 hubot에서 Slack에 업로드하는 것을 개발했습니다.

업로드 된 파일을 다운로드하고 Excel에서 열면 왜 깨질 수 있습니다. 조사해 보면, 무려 BOM이 소멸하고 있는 것을 깨달았습니다.
그러나 반드시 일어나는 것은 아니며 다른 CSV에서는 사라지지 않습니다.

몇 시간 고민 조사한 끝에, 해결 방법은 아직 모르지만, 원인은 판명되었습니다.
검색해도 같은 현상으로 고민하고 있는 사람이 발견되지 않았으므로, 비망록도 겸해 투고해 두려고 생각합니다.

결론 : 스 니펫으로 변환되면 사라집니다.



Slack 은, 텍스트 베이스의 파일을 업로드하면(자), 아무래도 1MB 이하의 것은 스니펫 표시를 하는 것 같습니다.

1024KB BOM이 포함된 CSV 파일을 업로드해 봅니다.

스니펫으로 표시됩니다. 이것을 조금 줄을 늘려 1025KB로 하고, 1MB를 넘으면…

의도대로 파일로 업로드되었습니다.
그리고 각각을 다운로드해 보면, 전자의 스니펫 표시된 쪽은 BOM 가 소멸해 버렸습니다. . .

비밀한 해결 방법



별로 제대로 된 방법은 아니지만, 왠지 1MB 이하에서도 스니펫으로 변환되지 않고 파일로 업로드할 수 있는 방법을 발견했습니다.
"그 방법은"파일의 선두에 BOM 을 2 개 쓴다"입니다. 이것으로 왜 잘 작동했습니다.


위에서 언급했듯이 탐색기에서 919KB의 BOM을 두 개 작성한 CSV를 업로드하면 1MB 이하에서도 파일로 업로드 할 수있었습니다. 물론, 텍스트로 그 CSV를 열면 두 번째 여분의 BOM이 있기 때문에 상당히 기분이 나쁘지만…

왜 무엇입니까? 첫번째 \uFEFF 는 BOM 로서 처리되어 파일의 처음은 실질 2 번째의 \uFEFF 그렇다면 첫 BOM 다음에 다른 것도 좋을 것입니다.

다른 시도



업로드 옵션 에서 filetype 에 binary 라든지 지정해보고 업로드했지만, 그것은 좋지 않았습니다.

부탁



어쩌면 Slack에서 1MB 이하의 CSV 파일을 업로드해도 스 니펫이되지 않는 괜찮은 방법을 아시면 알려주세요! !

좋은 웹페이지 즐겨찾기