하은양 믿음군 효실맘 호홍홍집s

php oracle 한글 깨짐 현상 character set 바꾸기 본문

가벼운 배움/PHP

php oracle 한글 깨짐 현상 character set 바꾸기

호홍홍집 2015. 5. 15. 15:44

UTF-8이 대세이기는 하지만 아직은 웹사이트를 개발함에 있어서 EUC-KR과 UTF-8을 써야 할 때가 있습니다.

그로 인해서 1대에 서버에서 PHP에서 Oracle로 개발할때 정말 어려움이 생기곤 하지요.


Oracle DB 연동을 위해 NLS_LANG을 KOREAN_KOREA.KO16MSWIN949으로 셋팅하여 EUC-KR용으로 할 경우 UTF-8로 출력하기 위해서 PHP에서 인코딩을 iconv나 mbstring을 통해 하곤합니다.


인코딩을 하는 것도 한 두 번이지 필드가 많을 경우 정말 아찔하고 이 경우 오히려 웹서버의 리소스를 많이 소모하게 되는 문제가 생기곤 합니다.


이 문제를 해결하기 위한 방법으로는 oci_connect 의 옵션을 통해 문자셋을 통해서 Oracle에서 처리하도록 하는 방법이 유용할 경우가 있습니다.


사용 방법은 TNS_NAME 이후 즉 4번째 옵션 항목에 사용할 문자셋 옵션을 추가 하면 됩니다.



■ 관련 메뉴얼 : http://kr1.php.net/manual/en/function.oci-connect.php



예를 들어


// UTF-8 문자셋 설정

$conn = oci_connect('user_name', 'pwd', 'test_db', 'AL32UTF8');


// EUC-KR 문자셋 설정

$conn = oci_connect('user_name', 'pwd', 'test_db', 'KO16MSWIN949');



즉 4번째 옵션에 UTF-8을 사용하려면 AL32UTF8를 셋팅하고 EUC-KR을 사용하려면 KO16MSWIN949를 셋팅하면 됩니다.

 

포스트 참고 : http://www.xelloss.pe.kr/m/post/236