Background Image

FORUM

조회 수 5012 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
Window7 64bit
CUBRID Ver.
CUBRID 11.3
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
java 8


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
 

안녕하세요.

 

여러 고객사에 따라 각각 환경구성이 달라지는 프로그램을 개발중에 있습니다.

 

현재 SQLGate 로 데이터 삽입 및 조회 테스트를 하고 있는데, 문자 집합에 따라 데이터가 다르게 나옵니다.

 

예를들어 문자 집합을 'euc-kr'로 하여 접속후 데이터를 생성하면 문자 집합을 'utf-8'로 하였을때 조회되는 한글 데이터가 깨져서 나옵니다.

 

반대로 utf-8로 접속하여 생성한 데이터는 euc-kr로 접속시 문자열이 깨져서 나옵니다.

 

이에 각 고객사에 따라 접속 jdbc 문자열을 분리하려고 합니다.

 

고객사1) utf8 접속 

jdbc:cubrid:localhost:33000:testdb:::?charset=UTF-8

 

고객사2) iso8859-1

jdbc:cubrid:localhost:33000:testdb:::?charset=iso-8859-1

 

위와같이 jdbc url을 지정하였을때 charset값을 바꿔도 항상 utf-8로 적용되고 있습니다.

해당값을 utf-8이 아닌 다른 값으로 설정할수 있는 방법을 알고 싶습니다.

 

((cubrid.jdbc.driver.CUBRIDConnection)conn).setCharset("euc-kr");

위와 같은 방식도 해봤지만 여전히 utf8로만 적용되고 있습니다.

 

java환경에서 문자열 인코딩을 강제로 변경할수 있는 방법이 있을까요?

 

 

혹시 해당 내용이 불가능하다면 ResultSet에서 문자열에 대해 원본 byte를 얻을수 있는 방법이 있을까요? 

 

오라클의 경우 인코딩 오류시 해당 문자열의 원본 byte값을 읽어서 다시 재인코딩하는 방식으로 구현하였는데,

현재 cubrid 의 jdbc는 문자열 데이터에 대해 getBytes를 호출할경우 예외를 던져주고 있습니다.

 

// UGetTypeConvertedValue.java

    public static byte[] getBytes(Object data) throws UJciException {
        if (data == null) return null;

        if (data instanceof byte[]) return (byte[]) ((byte[]) data).clone();

        throw new UJciException(UErrorCode.ER_TYPE_CONVERSION);
    }

 

// 위의 함수에서 if (data instanceof byte[]) 문에 걸려서 오류 발생

 

 

 

감사합니다.

 

  • ?
    gwak 2024.03.15 16:42
    hex 함수를 이용해 데이터를 hex값을 가져온다음 다시 인코딩하는 방식으로 해결했습니다.

    select hex(user_nm) from test_user;

    String hex = rs.getString(columnIndex);
    byte[] b = DatatypeConverter.parseHexBinary(hex);
    String value = new String(b, "euc-kr");

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 21 admin 2024.04.23 143849
4028 api 결과 값 질문 5 11시38분 2024.06.19 4846
4027 데이터베이스 로드 관련 문의 3 file hwson 2024.06.19 5095
4026 batch에서 insert 작업할 때 1 mango 2024.06.19 5317
4025 시퀀스 nextval 할 때 특정 값 제외 하는 방법 있습니까? 1 mango 2024.06.18 4942
4024 컬럼의 DEFAULT 값 추출 문의 1 새옹지마 2024.06.17 4966
4023 큐브리드 매니저 호스트연결시 무한 로딩 3 file dfdfdd 2024.06.13 5188
4022 큐브리드 locale이 euckr일 때 cp949 문자도 지원하는 것인가요? 4 닉네임어려워 2024.06.10 5229
4021 view 실행 쿼리를 조회 하고 싶습니다. 3 mango 2024.06.10 5180
4020 CUBRID 기동 시 오류 1 steve 2024.06.07 5031
4019 문자셋 문의드립니다. 1 닉네임어려워 2024.06.04 4892
4018 Cubrid 재기동 관련 에러사항 2 yhpark 2024.05.31 5043
4017 파일 업로드시 브로커 오류 메시지 1 포스트잇 2024.05.29 5194
4016 큐브리드 사용중 정지 1 딴딴딴딴 2024.05.28 5000
4015 SQL 수행 이력 및 통계정보 1 ijuru 2024.05.24 5044
4014 버전 업데이트 이후 Conversion error in date format 에러 1 file 마로비 2024.05.20 4975
4013 큐브리드 엔진 디렉토리와 데이터파일 디렉토리를 분리하는 방법 1 DB구루 2024.05.19 4947
4012 데이터 베이스 백업시 에러 1 file 로컬백업 2024.05.17 4878
4011 백업작업시 Unable to mount disk volume 그런파일이나 디렉터리가 없습니다 라는 에러 발생합니다 7 로컬백업 2024.05.17 4996
4010 sql_id가 empty일 때 Tran time이 존재하는 경우? 1 푸우짱 2024.05.14 4908
4009 cubrid php driver 2 나라디 2024.05.14 4989
Board Pagination Prev 1 ... 7 8 9 10 11 12 13 14 15 16 ... 213 Next
/ 213

Contact Cubrid

영업문의 070-4077-2112 / 기술문의 070-4077-2148 / 대표전화 070-4077-2110 / Email. contact_at_cubrid.com
Contact Sales