form post 전달 받은 문자 저장 시, 한글 깨질 때.
페이지 정보
작성자 서방님 댓글 0건 조회 229회 작성일 14-08-26 15:59본문
출처 : http://blog.netb.kr/79
form 태그를 이용해 post 방식으로 한글을 입력값을 받아 DB에 저장할 때 깨지는 경우가 있다.
파일도 같이 전달하기 위해 enctype=”multipart/form-data” 를 사용할 때 이런 문제가 나타난다.
1 2 3 | <form id="form_datas" class="appnitro" enctype="multipart/form-data" method="post" action=""> ... </form> |
증상
utf-8 방식을 사용함.
입력받은 값(한글)을 post 방식으로 넘겨 바로 출력하면 제대로 보인다.
DB에 저장할 때만 한글이 깨진다.
php, mysql, apache 모두 utf-8로 설정했는데 데이터베이스에 저장하면 ‘???? ‘ 와 같이 한글을 제대로 저장하지 못함.
해결방법
HTML 문서 시작 부분에 헤더 정보 (charset) 를 삽입한다.
1 2 3 4 5 | <?php header('content-type: text/html; charset=utf-8'); ?> <html> <head> <meta charset="UTF-8" /> ... |
반 만 해결됨
완전히 해결은 안되고 몇 개 <input>의 한글만 제대로 해석됨.
필요한 부분은 잘 저장되므로 일단 패스함.
다음에 시간날 때 좀 더 살펴봐야겠음.
해결 안된 부분 DB 저장은?
일단 궁여지책으로 json 인코딩 > DB 저장 > json 디코딩 > 사용
1 2 3 4 5 | # json 인코딩 해서 DB에 저장하고 $post_user_field = json_encode($p_user_field); # DB에서 가져올 때는 json 디코딩해서 사용하고 있다. $real_user_field = json_decode($post_user_field); |
댓글목록
등록된 댓글이 없습니다.