[첫화면으로]Perl/퍼센트인코딩

마지막으로 [b]

1. URL에 들어갈 한글을 인코딩하기 (%-인코딩)

이곳 저곳 뒤져본 결과 제일 단순한 것은
$string =~ s!([^a-zA-Z0-9_.-])!uc sprintf "%%%02x", ord($1)!eg;  # 이러면 %EF 등과 같이 hex 값을 나타내는 문자열로 바뀜

%-인코딩된 결과를 그냥 웹브라우저의 URL 입력칸에 넣으면 한글을 입력한 것과 동일하게 동작한다. 이것은 웹브라우저의 능력인지 웹서버의 능력인지 모르겠다. (아시는 분 가르쳐주세요~)

%-인코딩하지 않을 대상이 위 코드의 경우는 로 지정되어 있는데, 주인장UseModWiki소스수정, 특히나 UTF-8이전작업을 하려다보니 그 외에도 인코딩되면 안 되는 것들이 있다.

그래서 현재 이 홈에서는 아래와 같이 코딩하였음
    $string =~ s!([^/?#=a-zA-Z0-9_.-])!uc sprintf "%%%02x", ord($1)!eg;

반대로 변환하는 경우 다음과 같이 하면 된다고 함. 써 본 적은 없음.
$string =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;    # 위 코드와 반대로, %-인코딩된 내용을 다시 원래 문자열로 바뀜

이름:  
Homepage:
내용:
 


컴퓨터분류

마지막 편집일: 2012-2-11 12:25 am (변경사항 [d])
2286 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기