CI 묻고 답하기

제목 url에 한글이 들어갈 경우 어떻게 처리를 해야 되는지..
글쓴이 newjysh 작성시각 2012/06/14 05:54:29
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 24239   RSS
검색 후 페이징의 링크 문제로 고민을 하고 있습니다.
 
CI 2.1.0을 이용한 개발중에 있습니다.
utf-8을 사용합니다.
검색어가 한글일 경우 자바스크립트에서 encodeURIComponent 할 경우와
다른 주소가 표시가 됩니다.
 
/classad/start/search/고/
한글 '고' 가 
encodeURIComponent 일 경우와 브라우저 주소창의 표시가 다릅니다.
 
쿼리문에 넣으려고 하는데 한글로 디코딩을 못하고 있습니다
 
또, 여기 포럼은 검색시 주소창에는 한글이 바로 표시가 되는데 어떻게 하신것인지
알고 싶습니다.
 
첨부파일 memo.zip (550 Bytes)
 다음글 A PHP Error was encountered 에러... (2)
 이전글 Prepared Statements에 대한 궁금한사항입... (7)

댓글

불멸의새 / 2012/06/14 08:06:54 / 추천 0
CodeIgniter 한국사용자포럼에서 사용한 방식은 단순히 입력된 키워드를 URL에 넣어 호출하는 방식이라서 그대로 보여지는 것이죠.

장점은 한글 그대로 표시 가능하다는 점이 있지만 Get String 에서 사용되는 특수문자들을 입력할 경우 제대로 처리가 안되는 문제가 발생하고 이 부분은 영어도 동일합니다.

URL을 분명하게 볼 수 있게 하기 위해서 일정 부분을 포기 할 수 있다면 Get String에서 사용되는 특수문자들을 제거 혹은 변환 후 적용하는 방법이 있고요.

보는 것보다 정확한 데이터가 중요하다고 생각된다면 URL Encoding으로 처리하는 것이 바람직해 보입니다.


한대승(불의회상) / 2012/06/14 09:47:17 / 추천 0
application/config/config.php 에서 

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
이 부분을
$config['permitted_uri_chars'] = '가-힣a-z 0-9~%.:_\-';
으로 수정해 주시면 됩니다.
인스카 / 2012/06/14 10:44:35 / 추천 0
음.. 저는 자바스크립트에서 GET 주소를 호출할 때 encodeURIComponent를 사용하고,
Codeigniter에서 받을 때 urldecode를 사용합니다.

정확하게는 decode 방식에 따라 메소드가 다른 것 같던데, 일단은 제가 사용하는 범위 내에서는 디코딩이 잘 되더라고요..