[급한질문]jdbc-odbc에서 한글처리에 관해...

조헌진 0 425 2004.12.06 02:49
[급한질문]jdbc-odbc에서 한글처리에 관해... 
 
 
안녕하세요..

아래에 질문에 대해 잘 답해 주셔서 감사합니다.

jdbc-driver를 이용해서데이타베이스 연동을 여러가지로 할 수 있다고 하는데,
저는 그것이 너무 복잡해 보여서, odbc를 이용해서 연동을 시켰습니다.
(아래에 퍼스널 오라클에 대한 답변 감사합니다.)

그래서 테이블에 자료를 insert 하는 것은 성공했는데,
한글을 입력하면, 무조건 select 구문으로 레코드를 불러오면 "???"로 물음표만
계속 나오네요...

자바에서 한글처리가 어렵다고 하는데, 코드를 어떻게 바꿔야 하는지..

제가 삽입을 위해서 쓴 코드입니다. 전문가님들의 바른 조언을 부탁드리겠습니다.

======================================================

import java.sql.*;

public class JDBCTEST1
{
//static String name = ksc2ascii("김정은");
//static String address = ksc2ascii("서울특별시 번동");
//DB입출력시 사용하는 값 지정
static final String SYSTEM_DSN  = "jdbc:odbc:Oracle";    //시스템 DB이름 정의
static final String DB_USER    = "SCOTT"; //사용자의 ID정의
static final String DB_PASSWD  = "TIGER"; //사용자의 PASSWORD정의
static final String JDBC_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver"; //JDBC드라이버 정의

public static void main(String argv[])
{
String[] NAME = new String[10];
String[] ADDRESS = new String[10];

NAME[0] = ksc2ascii("김소영");
NAME[1] = ksc2ascii("변성호");
NAME[2] = ksc2ascii("소영");
NAME[3] = ksc2ascii("박성호");
NAME[4] = ksc2ascii("이지선");
NAME[5] = ksc2ascii("이명재");
NAME[6] = ksc2ascii("전상훈");
NAME[7] = ksc2ascii("손혁수");
NAME[8] = ksc2ascii("양금석");
NAME[9] = ksc2ascii("장재혁");
ADDRESS[0] = ksc2ascii("서울특별시 강북구 번동");
ADDRESS[1] = ksc2ascii("제주도민");
ADDRESS[2] = ksc2ascii("일산");
ADDRESS[3] = ksc2ascii("서울특별시 강서구");
ADDRESS[4] = ksc2ascii("서울특별시 목동");
ADDRESS[5] = ksc2ascii("경기도 부천시");
ADDRESS[6] = ksc2ascii("서울시 구일");
ADDRESS[7] = ksc2ascii("강원도 산골");
ADDRESS[8] = ksc2ascii("미국 산골");
ADDRESS[9] = ksc2ascii("영국 산골");

try
{
//jdbc-odbc bridge driver를 로드한다.
Class.forName(JDBC_DRIVER);
                       
//dbms와 연결을 설정한다.
Connection conn = DriverManager.getConnection(SYSTEM_DSN,DB_USER,DB_PASSWD);

//dbms에 명령을 보낼 statement를 받아온다.                               
Statement stat = conn.createStatement();

//dbms에 명령을 내린다.
        for ( int i = 0 ; i < 10 ; i++)
          stat.executeUpdate( "insert into JDBCTEST values ('" + NAME[i] + "','" + ADDRESS[i] + "')"); 


stat.close();
conn.close();
}catch(Exception e){System.out.println("error in deleteDB");}
}
    public static String ksc2ascii(String str)
{
      String result = null;
      try {

            result = new String(str.getBytes("8859_1"), "KSC5601");
      }catch (java.io.UnsupportedEncodingException e) {System.err.println(e.toString());}
      return  result;
  }
}



===============================================================

ksc2ascii 함수에서 8859_1 과 kscs5601을 바꾸면 에러가 나오고,
위와 같이 쓰면 실행에서 에러는 않나는데, 물음표로 다 바뀌는군요...

위같은 경우가 많이 발생한다고, 많이 들었는데,
구체적으로 위의 코드를 어떻게 바꿔야 완전히 한글문제를 해결할 수 있을지...

참고로,사용하고 있는 서버는 자바웹서버 1.1.3 , 퍼스널오라클8, jdk1.2입니다.



추가로, 혹시 아시면, odbc말고, 다른jdbc드라이버를 사용하면,
이런 문제가 생기지 않나요?....

그럼..... 
 
 
[이 게시물은 오라클자바…님에 의해 2014-09-11 09:47:36 Java Q&A에서 복사 됨]

Comments