문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 CSV (문단 편집) === 무결성 검증 === 일반적으로 CSV파일의 무결성을 검증할 때는 한 줄의 콤마 수를 센다. 모든 줄의 콤마 수는 다 같아야 하며 더 적거나 더 많은 줄이 발견되면 오류로 판단해 걸러내는 등의 적절한 처리를 할 필요가 있다. 가장 일반적으로 발견되는 오류는 다음과 같다. * 내용에 콤마가 들어가서 한 줄의 콤마 수가 몇 개 늘어나는 경우 * 줄바꿈 문자가 누락돼 한 줄의 콤마 수가 두 배로 늘어나는 경우 * 내용에 줄바꿈 문자가 들어가서 두 줄 이상의 콤마 수가 정상보다 적은 경우 * 줄바꿈 문자의 캐리지 리턴(CR)을 걸러내지 못해 마지막 필드의 데이터가 깨지는 경우 * 따옴표가 정상적으로 닫히지 않아 임의의 필드와 레코드가 한 필드 안에 '''인용돼''' 들어간 경우 * 마지막 줄의 라인 피드 누락으로 마지막 줄 데이터를 읽지 못한 경우 * 첫 줄에 헤더 텍스트가 들어간 CSV를 사용할 때 첫 줄을 건너뛰지 않은 경우 최악은 CSV의 필드 안에 게시판 본문 데이터를 그냥 담는 것이다. 게시글 본문에는 쉼표, 따옴표, 줄바꿈문자가 모두 들어가기 때문에 데이터가 어떻게 깨졌는지, 심지어는 이게 깨진 레코드인지조차 모를 수도 있다. 예를 들어 게시글 본문 내용 자체가 CSV데이터일 경우 존재하지도 않는 유령 게시글이 하나 등록될 수 있다. -- [[SQL injection|CSV Injection]] -- 이 경우에는 아예 CSV 자체를 안 쓰는 게 정신건강에 좋다. 참고로 게시판 본문 데이터가 HTML일 경우가 끝판왕으로 XML을 써도 힘들다.[* CDATA로 이스케이핑한다. 본문 내에 CDATA를 쓴 경우에는 필터로 날려버리거나 HTML엔티티로 이스케이프하고 저장한다.][* 모든 텍스트 기반 자료구조를 다룰 때는 해당 자료구조의 필드에 '[[재귀함수|자기 자신의 데이터]]'를 담는 경우를 염두에 둬야 한다. 아예 처음부터 입력을 막거나 또는 이스케이프 방법을 제공해야만 한다. 바이너리 기반 자료구조는 보통 데이터 필드의 정확한 길이를 해당 필드를 읽기 전에 알 수 있도록 배려하기 때문에 이런 문제가 덜하다.] 테이블 덤프 등의 이유로 무조건 CSV를 써야 한다면 아예 게시판 본문 데이터 전체를 URI Encode하고 무조건 따옴표로 인용하면 데이터 크기가 커지고 편집기로 직접 못 읽지만 어쨌든 문제를 회피할 수 있다. 자바스크립트 사용자라면 {{{encodeURI()}}}가 아닌 {{{encodeURIComponent()}}}함수를 써야 제대로 이스케이프 처리된다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기