게시판 입력항목에 한자를 입력하고 등록을 누르면 DB에 저장되지 않습니다. ㅜㅜ
본문
위에서 마찬가지로 신청서 폼을 만들고 각각 한글, 한자, 영문을 입력받도록 구성하였습니다.
디비를 열어보면 한글과 영문은 잘 들어가있는데... 한자 (한글을 치고 한자키로 변환한)만 제대로 들어가지 않습니다.
어떻게 해야 정상적으로 한자가 반영될까요? ㅜ_ㅜ
고수님의 가르침 부탁드립니다 .ㅜㅜ
참고로 캐릭터셋은 charset=euc-kr 입니다.
혹시 이게 문제가 되는 걸까요?
답변 3
그럴것 같습니다.
utf-8로 해 보세요 ^^
네.. 문제 생길것으로 보입니다..
DB를 UTF8로 바꾸는게 제일 좋을것 같구요.
아니면 텍스트를 인코딩해서 넣어야 될것같습니다.
테스트 -> %ED%85%8C%EC%8A%A4%ED%8A%B8
カタカナ -> %E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A
이런식으로 넣으신다면 전세계 어느나라 말이든 얼마든지 DB를 바꾸지 않고도 가능하겠지요~~
간단한 예제입니다
DB 구조 변경없이 변환을 하실거라면, 핵심은 폼이 PHP로 전송되기 전에 자바스크립트로 인코딩을 해주는것입니다.
<meta charset = "utf-8">
<form onsubmit="return do_write();">
<input type = "Text" id = "input" value = "테스트">
<input type = "Text" id = "output" value = "">
<input type = "submit" value = "전송">
</form>
<script type = "text/javascript">
function do_write()
{
// 글쓰기전 변환
document.getElementById("output").value = encodeURIComponent(document.getElementById("input").value);
return false;
}
</script>
이름 하나 한자로 등록하려고 UTF로 바꿀 필요는 없습니다
스킨폴더에 write_update.skin.php를 만들고(저장필드가 wr_1이라고 한다면)
<?
$wr_1 = urlencode(wr_1);
?>
list, view 스킨에서는 사용할 곳에 아래처럼 하면 됩니다
echo urldecode($list[$i][wr_1]);
echo urldecode($view[wr_1]);
답변을 작성하시기 전에 로그인 해주세요.