가끔 웹로그에 한글이 포함될 때가 있다. 다음은 한글을 검사하는 정규표현식 '[가-힝]'. '[가-힣]'이 아니라 '[가-힝]'인 이유는 여기 참고.
그런데 한글이 URL 인코딩됐을 때는 어떻게 검사할 수 있을까?
'[%EA%B0%80]'과 같은 정규표현식은 인코딩된 한글만을 검사하지 못한다. 문자클래스는 하나의 문자만을 인식하기 때문에 다음처럼 '%EA', '%B0', '%80'을 1byte 단위로 검사하지 못하고, '%', 'E', 'A', 'B', '0', '8'을 개별 검사한 결과를 보여준다.
음, 어쩌지? 다음은 한글 인코딩 관련 문서 검색 결과.
한글은 UTF-8 기준 3byte로 인코딩되며, 이때 3byte는 '1110'으로 시작한다고 한다. '1110'의 16진수는 'E'. 다음은 인코딩된 한글을 3byte 단위로 검사하는 VIM 정규표현식 '\v\%e.(\%\w\w){2}'.
검사가 되면 뭐다?
댓글 없음:
댓글 쓰기