2016-09-20 6 views
0

ResultSet의 varchar 값을 저장하기 위해 String 변수를 사용하고 있습니다. 문제는 응용 프로그램에이 값을 저장할 때입니다. 그것은 중국어/한국어 문자를 표시하지 않습니다. 동일한 코드를 사용하여 Clob 객체에서 해당 문자를 볼 수 있기 때문에 문제가 응용 프로그램에서 렌더링되지 않는다고 확신합니다. 유니 코드 문자를 유지하기 위해 varchar를 가져 오는 가장 좋은 방법은 무엇입니까? 아래는 문제를 쉽게 설명 할 수있는 작은 스 니펫입니다.Java에서 varchar 값에서 가져온 중국어/한국어 문자를 유지하는 방법

Result resultSet = statment.getResultSet(); 
while(resultSet.hasNext(){ 
String userName = commentRS.getString(3); 
} 

답변

0

당신이 뭔가 자바의 문자열에 데이터베이스의 CLOB에서 인코딩 변환 동안 엉망이되었다고 생각하는 경우에 당신이 그것을 방지하기 위해이 코드를 사용하려고 할 수는 :

String userName = new String(commentRS.getBytes(3), "UTF-8"); 

아이디어는 순수 스트림을 얻을 수 있습니다 데이터베이스의 바이트 수를 가져온 다음 원하는 인코딩으로 String을 만듭니다.

+0

getBytes()를 사용하여 NPE를 얻고 있습니다. –

+0

varchar 데이터에 문제가 있습니다. CLOB 데이터를 올바르게 사용할 수 있습니다 –

+0

죄송합니다. CLOB 대신 varchar를 사용했습니다. 문제는 getBytes가 NPE를 throw하는 것이 이상하다는 것입니다. 어쩌면이 문제는이 [질문] (https://stackoverflow.com/questions/4168494/resultset-getstring-on-varchar2-column-returns-empty-string)에 설명 된 것과 유사합니다. 나는별로 익숙하지 않습니다. 오라클 데이터베이스하지만 지금까지 내가 varchar 실제로 varchar2와 같은 것을 기억하고있다. – siarheib