웹 페이지를 개발하다 보면 흔히 겪는 일이있다.
바로 한글이 깨져서 나오는 경우.
한글이 깨져서 DB에 저장되는 경우.
등등...
저두 몇일 전 CUBRID DB에 데이터를 저장을 하였는데...어느 순간 글씨가 깨져서 저장된 몇몇 컬럼을 확인 한 적이 있었습니다.
깨진 글씨를 인코딩하여 확인해보니 UTC-8 문자 였던게 깨진 이유였던 것이었습니다.
무조건 UTF-8 로 데이터를 넘겨달라고 할 수도 없고 해서 그냥 서버단에서 처리를 하는 방법을 찾아보았죠.
그래서 찾은 함수는 "mb_desct_encoding" 이었습니다.
사용법은 별로 어렵지 않아요.
$str = "인코딩확인";
$enc = mb_detect_encoding($str, array("UTF-8", "EUC-KR", "SJIS"));
/* 참고로 SJIS 는 일본에서 자주 쓰는 인코딩입니다. */
/* UTF-8 이 아닌 경우에만 인코딩을 변환하면 되겠죠? */
if ($str != "UTF-8") {
$str = iconv($enc, "UTF-8", $str);
// iconv 는 인코딩 변환 함수죠.
}
간단하죠?
전 일일이 DB를 SELECT 하고 이를 UTF-8 로 변환을 한 후 다시 DB에 UPDATE 하는...일을 두번 하는 경험을 했네요.
다른 개발자님들은 미리 DB에 저장하기 전에 확인을 해서 저같은 상황을 겪지 않도록 하세요.
'『IT/개발』 > PHP' 카테고리의 다른 글
[PHP] html 형식의 이메일 전송 하기(SMTP). (0) | 2014.12.03 |
---|---|
[PHP] 원격서버에 파일 올리기 (ssh2_connect) (0) | 2014.11.14 |
[PHPExel] Excel(엑셀) 한글 파일이름 깨짐 현상 해결방법. (0) | 2014.10.31 |
PHP Notice: Undefined index: 발생 시 처리 방법 (0) | 2014.10.22 |
PHP 에 큐브리드(CUBRID) PDO 드라이버 설치 하기. (0) | 2014.10.21 |