제목 | post 한글 전송시 한글이 공백 처리되는 문제 | ||
---|---|---|---|
글쓴이 | 재희 | 작성시각 | 2012/09/29 16:01:53 |
|
|||
안녕하세요. 현재 코드이그나이터로 개발을 하면서 기본적인 문제를 겪고 있습니다. 문제는 해결이 안된다는거에요 ;; title 이라는 필드에 한글을 담아서 디비에 넣어야 하는데 한글이 사라집니다. 항상 에디터 기본값을 utf-8로 맞춰놓아서 인코딩 문제는 생각안했는데 혹시나 해서 file -I 명령어로 인코딩도 확인하고 content-type 도 utf-8 로 맞췄습니다. 혹시 codeigniter 의 post field 처리하는 과정에서 사라지는지 확인하려고 index.php 가장 맨 앞단에 $_POST변수를 출력해보니까 한글 출력이 잘됩니다. 결론은 codeigniter가 post변수 처리과정에서 사라진다는 것인데 , 어디서 사라지는 확인해보니까 Utf8클래스에 clean_string메소드에서 iconv 함수를 통과하면 한글이 빈칸이 됩니다.. clean_string 함수 보니까 ascii 값이 아니면 컨버팅 하는거 같은데 여기만 통과하면 한글이 사라지네요. 혹시 제가 어떤 설정 부분에서 실수했다거나, 폼전송시 실수 한 부분이 있을까요? 추석 연휴에 이것때문에 고생이네요 ㅠ.ㅠ |
|||
태그 | 한글폼전송 | ||
다음글 | 파일 업로드 문제인데요...ㅜㅜ (2) | ||
이전글 | why? how? CI sessoin!!!!! 질문.... (3) | ||
재희
/
2012/09/29 18:01:45 /
추천
0
http://stackoverflow.com/questions/9375909/iconv-utf-8-ignore-still-produces-illegal-character-error 이 글을 참고 했습니다. 답변자의 말로는 iconv 함수의 인풋 인코딩 파라미터와 아웃풋 인코딩 파라미터가 달라야 한다는데 ;; 뭐가 사실인지 모르겠네요 ;;
|
taegon
/
2012/10/04 13:45:09 /
추천
0
데이터베이스 저장 전에 변수값을 찍어 보셨나요?
$_POST 값이 잘 나오면 $this->input->post() 값도 잘 나옵니다. 데이터베이스에 저장하기 전에 POST의 값이 어떻게 되는지 확인해보시는 것이 좋을 듯 합니다. |
재희
/
2012/10/05 00:15:14 /
추천
0
데이터 베이스 저장전에도 제대로 안나옵니다.
POST변수로는 제대로 넘어가는데 , core부분에서 INPUT 클래스 로드시에 UTF-8클래스를 로드 하게 되는데 로드 하는 부분에 보면 UTF8클래스의 clean_string 메소드를 반드시 실행하게 됩니다. 이 메소드의 내용은 function clean_string($str){ if($str이 아스키 값이 아니라면){ $str = @iconv('UTF-8','UTF-8/IGNORE',$str) } return $str ; } 입니다. 이 함수를 실행하게 되면서 $str값에 있는 값이 빈칸으로 처리됩니다. 저 코드는 UTF-8이 아닌 문자는 이그노어 시키라고 하는거 같은데 , 저 함수안에 인자를 그냥 숫자든 특수 문자든 어떤 문자를 넣어도 그냥 빈칸으로 처리되네요. |
재희
/
2012/10/05 00:21:47 /
추천
0
<?php $str = iconv("UTF-8","UTF-8/IGNORE","코드이그나이터") ; echo $str ; ?> 제가 셋팅 부분에서 잘못을 한건지 모르겠네요. 인자에 어떤 값을 넣어도 빈칸만 출력합니다. ~ |
공이
/
2012/10/05 10:18:40 /
추천
0
iconv("", "UTF-8//IGNORE", "코드이그나이터");
로 한번 해보세요. IGNORE 의 슬래시는 2개 써주셔야 하고.. 앞 인코딩을 공백으로 두면.. 대부분 자동으로 해당 인코딩을 판단하여 변환해 줍니다.. 확인해보세요. |