Perl/퍼센트인코딩 페이지의 소스 보기
마지막으로 [b]
-- Loading page list... --
내용출력
로그인[l]
Diary
[f]
최근변경내역
[r]
페이지목록[i]
횡설수설[2]
게시판[3]
링크
수정할 수 없습니다: Perl/퍼센트인코딩 는 읽기 전용 페이지입니다.
== # URL에 들어갈 한글을 인코딩하기 (%-인코딩) == 이곳 저곳 뒤져본 결과 제일 단순한 것은 {{{#!vim perl $string =~ s!([^a-zA-Z0-9_.-])!uc sprintf "%%%02x", ord($1)!eg; # 이러면 %EF 등과 같이 hex 값을 나타내는 문자열로 바뀜 }}} %-인코딩된 결과를 그냥 웹브라우저의 URL 입력칸에 넣으면 한글을 입력한 것과 동일하게 동작한다. 이것은 웹브라우저의 능력인지 웹서버의 능력인지 모르겠다. (아시는 분 가르쳐주세요~) %-인코딩하지 않을 대상이 위 코드의 경우는 * 알파벳과 영어 * "_", ".", "-" 로 지정되어 있는데, [[주인장]]이 [[UseModWiki소스수정]], 특히나 [[UTF-8이전작업]]을 하려다보니 그 외에도 인코딩되면 안 되는 것들이 있다. * "/" - [[UseModWiki소스수정/SlashLinks]]를 사용하는 경우에, [[하위페이지]]를 구분하기 위한 "/"가 %-인코딩되어 있으면 404 Not found 에러가 난다. (사실 이건 도저히 이해가 안 감. "wiki.pl/페이지이름/하위페이지이름"은 wiki.pl을 제대로 호출하는데 "wiki.pl/페이지이름%2F하위페이지이름"은 안 될 이유가??) * "?" - 마찬가지로, "wiki.pl?페이지이름"에서 물음표가 %3F 가 되면 404 에러 * "#" - URL뒤에 앵커로 붙을 때 "#"이 %-인코딩되면 인식이 안 됨 * "=" - "wiki.pl?action=rss"와 같은 경우. 사실 인코딩되어도 되긴 하던데, 보기에 너무 안 좋다. :-) 그래서 현재 이 홈에서는 아래와 같이 코딩하였음 {{{#!vim perl $string =~ s!([^/?#=a-zA-Z0-9_.-])!uc sprintf "%%%02x", ord($1)!eg; }}} 반대로 변환하는 경우 다음과 같이 하면 된다고 함. 써 본 적은 없음. {{{#!vim perl $string =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; # 위 코드와 반대로, %-인코딩된 내용을 다시 원래 문자열로 바뀜 }}}
----
---- [[컴퓨터분류]]
Perl/퍼센트인코딩
페이지로 돌아가기 |
다른 수정본 보기