본문 바로가기

개발자이야기/MSSQL이야기

MSSQL + UTF-8 사용하기

반응형

MS-SQL이 유니코드 지원 안하고 어쩌고 이딴거 다 뻘소리다..


머야.. 결국 N써야 하나 어쩌나 하다가.... 최대리님이 일단 더 찾아보고 결정하라길래.. 구글 뒤적거리다가


마지막에 발견한놈이 날 살렸다 ㅡ_ㅡ


jdbc 드라이버가 utf-8을 지원하는 드라이버가 있댄다 -,.-


솔직히 jdbc 도 쪼끔 의심하긴 했지만 이놈이 전부일줄은 몰랐다 --


jdbc 를 기존 ms에서 배포한 jdbc 말고, sourceforge 에서 나온 jtds 란 jdbc 로 바꿨더니 진짜 잘된다 -_-


jsp 페이지에서 캐릭터셋 utf-8 로 맞춰놓고 그냥 인서트 시켜도 잘만된다 -_-


한 4일동안 맘고생 했는데... 변비 해소한 거처럼 시원한 느낌이긴한데.. 허무하다 -_-;


아래는 jtds 다운로드 페이지

http://sourceforge.net/project/showfiles.php?group_id=33291


jtds 페이지

http://jtds.sourceforge.net/


정정해야겠습니다.. 윗 글처럼 해도 깨지는것이 많습니다..

 

이 글 보고 부디 잘못된 정보로 힘들어하지 마시길..


MS-SQL은 N많이 유일하게 유니코드를 사용할수 있다고 합니다

 

해결책

따라서 문자열의 INSERT 나 UPDATE 시킬때 쿼리분석기에서는 앞에 N을 꼭 붙여줘야하지요..

그래서 저는 JSP 코딩시에도 N을 붙여주거나 또는 pstmt에서 셋팅할때 그냥 단순히 pstmt.setString() 메서드 외의 무언가를 써야 하는 줄 알았지요

 

저희 회사에서는 jdk 1.4 버전을 사용중인데, api를 보니 jdk 1.6버전에서부터 pstmt.setNString() 이란 메서드가 있더군요.. 또한번 좌절...OTL

jdk 1.6 소스 받아서 1.4에서 extend 받아서 처리하려고도 해보았으나.. 그것 역시 전부 클래스가 아닌 인터페이스로 작성되어 있어 알아보기가 애매하더군요.. 그래서 또한번 좌절...OTL

 

에라 모르겠다 하는 심정으로 일단 그냥 setString 때려봤습니다.. 됩니다.. 여기서 완전 좌절했습지요..네네..

주절 주절 말이 많았네요~ 결론은.. 테이블 생성시 각 문자열 컬럼에는 N 붙여주시고.. JSP 코딩시에는 그냥 pstmt.setString() 으로 처리해도 된다는겁니다..ㅠㅠ

이글 보신 모든 분들이 저처럼 삽질 하는 일이 없으시길...

처리한지 4달이 넘어서 해결책 적네요.. 혹, 그동안 잘못된 정보 읽으신 분들 계신다면 죄송합니다..바빠서요 ㅠㅠㅋ

반응형