String을 편집하다 보면 줄바꿈의 다양한 종류를 접하게 된다.

결과적으로는 어떤 줄바꿈이든 이 3가지 중 하나다.

\n (=vbLf, chr(10))

\r (드물게) (=vbCr, chr(13))

\r\n (=vbCrLf, chr(13)+chr(10), Environment.NewLine)

 

엑셀에서는 줄바꿈이 나오면 \n으로 기록된다.

이외 다른 텍스트 필드에서는 대부분 \r\n이다. [각주:1]

대부분은 같은 줄바꿈이라면 이중 무엇을 써도 상관이 없으나,

string에서 double quotation이나 기타 특이한 문자가 나오는 경우 등에서 \n, \r\n 같은 형태로 replace를 적용하면

제대로 인식 못 하는 케이스가 존재한다.[각주:2]

이런 케이스를 피하기 위해선 chr(10), chr(13)+chr(10) 형태로 찾아서 인식하는 게 가장 안전하다.

  1. IFRAME 같은 곳에서 뿌린 Data들은 \n으로 뿌리는 케이스가 많다. 왜냐면 엑셀로 export할 상태로 웹에도 그대로 뿌리기 때문 [본문으로]
  2. 사실 아주 정확한 원인은 모르겠다. 아마 모종의 이유로 escape가 되지 않는 조건이 만들어져서 그런 것이라 추측하고 있다. [본문으로]

+ Recent posts