2009-11-17 8 views
4

Ruby에서 CSV 파일을 생성 중입니다. 문제는 열 문자열에 큰 따옴표, 작은 따옴표가 포함된다는 것입니다. 어떻게하면 이러한 것들을 피할 수 있습니까?CSV 파일을 만들 때 특정 문자를 이스케이프 처리해야합니까?

"Mary had a little so called \"lamb\"","34","none" 
"something is not \"right\"","23","none" 

각 열은 큰 따옴표와 쉼표 (및 공백 없음)로 묶어 파일에 기록됩니다.

또한 어떻게 CSV를 MySQL에 삽입합니까? PHP의 mysql_real_escape_string과 같은 것을 사용해야할까요?

+0

예, 쉼표 또는 따옴표가 포함 된 문자열을 인용해야합니다. –

답변

6

쓰기 CSV 데이터는 간단한 방법은 두 따옴표와 큰 따옴표의 모든 인스턴스를 교체 한 후 큰 따옴표로 전체를 둘러싸는 것입니다, 간단합니다. 또는 데이터에 큰 따옴표, 쉼표, 캐리지 리턴, 줄 바꿈 또는 선행/후행 공백이 포함되어 있지 않은 경우 데이터를 따옴표로 묶거나 이스케이프 걱정없이 사용할 수 있습니다. 자세한 내용은 here을 참조하십시오.

구문 분석 CSV는 훨씬 더 복잡합니다. 특히 다양한 형식의 변형 된 데이터를 처리하려고하면이 경우 기존 모듈을 사용하고 싶어합니다.

2

FasterCSV를 사용하십시오. 자신의 CSV 생성을 롤백하지 마십시오.

http://fastercsv.rubyforge.org/

+0

FasterCSV에없는 매우 구체적인 것을 찾고 있지 않는 한. – Chirantan

+0

그러나 동의하지는 않을 것입니다. 조언 "라이브러리를 사용하여, 자신의 롤하지 말라"는 진부하지만, 이유는 진부입니다. 대다수의 경우 올바른 조언입니다. –

관련 문제