Background Image

FORUM

조회 수 62 추천 수 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 도구 출시 안내 admin 2024.04.23 119
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4475
3740 큐브리드 실행이 안되는 이슈 1 file 최현욱 2024.04.09 50
3739 뷰 생성 후 조회하는데 원본 쿼리와 갯수가 다릅니다 1 플레이어블 2022.11.11 52
3738 큐브리드 매니저 -> 데이터베이스 복구 오류 문제 문의 3 file propolisCandy 2022.11.07 53
3737 unloaddb & loaddb 관련 질문이 있습니다. 1 543534512 2024.04.06 54
3736 autoexecquery.conf 매시간 실행 스케쥴 문의 1 Roy 2022.04.06 55
3735 cci에서 패스워드 암호화 사용 방법 1 가을이아빠 2023.01.12 55
3734 날짜 형식 변환에 대해서 궁금해서 올립니다. 1 김용용 2024.02.14 56
3733 oracle_style_empty_string 설정 클라이언트 단에서 조회 2 hjeong 2022.11.04 56
3732 임의용량에 대해 문의 드립니다. 1 김은지 2023.01.18 57
3731 JDBC로 BIT(n) 타입의 데이터를 get/set 하는 메소드는 각각 무엇인가요? 2 새옹지마 2023.01.03 57
3730 (1개의 댓글은 작성자가 썼습니다.)비주얼 베이직 큐브리드 연동후 동시에 여러 테이블 보는 방법문의 2 secret 강남우 2012.12.21 58
3729 CUBRID 11.2 rpm 설치시 cubrid 계정 패스워드 2 가을이아빠 2024.03.04 58
3728 함수 값은 null 체크가 안되나요?? 1 ozro 2022.08.22 60
3727 HA로 운영중인 CUBRID 버전업 방법과 INDEX 문제 질문드립니다. 11 secret 반짝이 2011.12.28 61
3726 FORAMT값 적용안됨 1 귀기기기 2022.10.14 61
3725 DECODE, CASE WHEN 사용법 문의 2 핑크팬더 2024.04.03 61
» jdbc 연동시의 charset 강제 변경 방법 1 file gwak 2024.03.14 62
3723 cubrid acl reload 에러 1 hiDev 2022.04.29 63
3722 javasp start fail이 발생합니다. 1 유수부쟁선 2023.09.22 63
3721 외래키 적용시 null 에러가 뜹니다. 1 쭌쿰 2020.10.28 64
Board Pagination Prev 1 ... 9 10 11 12 13 14 15 16 17 18 ... 200 Next
/ 200

Contact Cubrid

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