본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] QUOTED-PRINTABLE 의 예외처리 =\r\n

by 돼지왕 왕돼지 2019. 4. 10.
반응형

[android] QUOTED-PRINTABLE 의 예외처리 =\r\n


=\r\n, carriage return, empty string, hexadecimal, line wrap, QP, qp encoding, quoted printable carriage return, quoted printable last =, quoted printable new line, quoted-printable, quoted-printable encoding, vcard quoted printable, [android] QUOTED-PRINTABLE 의 예외처리 =\r\n, 대문자, 예외처리



-

QUOTED_PRINTABLE 은 모든 문자를 =XX 형태로 표시하는 encoding 방법이다.

XX 는 hexadecimal 문자가 들어간다. 다시 말해, 0~9 또는 A~F 가 들어간다는 이야기이다.

알파벳의 경우 대문자만 인정하고 있다.

예를 들면 12 는 =0C 로, 61 은 =3D 로 표시되는 그런 형태이다.



-

그런데 Spec 에 잘 정의되지 않아서(혹은 내가 대충 읽어서) 개발자를 애먹이는 녀석이 하나 있는데 바로 =\r\n 이다.

QUOTED-PRINTABLE 로 encoding 할 때 길다 싶으면 line wrap 을 하곤 하는데 이 때 사용하는 기호가 “=\r\n” 이다.


그래서 QUOTED_PRINTABLE 을 vcard 같은 곳에서 parsing 할 때 carriage return 인 \r\n 으로만 하게 되면, quoted-printable 의 format 이 깨지게 된다.

예를 들면 이런 문자가 남게 되는 것이다. =0C=3D= ( 마지막에 = 가 남아있는 형태 )

그렇기 때문에 quoted-printable 의 new line 혹은 carriage return 인 =\r\n 을 찾아 적절히 empty string 등으로 replace 해준 후에 decoding 을 진행해야 원하는 값을 얻을 수 있다.



-

Quoted printable 에 대한 자세한 이야기는 Wiki page 를 참조해보시길~



-

끝!




반응형

댓글