2013-03-20 2 views
0

oracle에 멀티 바이트 문자 (중국어 문자)를로드했으며 Java에서 Oracle에서 데이터를 가져 왔습니다. 이클립스 콘솔에서는 중국어 문자 대신에 ?을 표시합니다.
이것은 Windows 환경에서만 발생하며 Linux에서는 발생하지 않습니다.멀티 바이트 문자

데이터 Oracle 테이블에 삽입 :

NAME   
------------ 
국    
subhan  
汉 

코드 데이터를 페치하는 데 사용 : 코드를 실행 한 후

Class.forName("oracle.jdbc.driver.OracleDriver"); 
     String url="dbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))"; 
     Connection conn= DriverManager.getConnection(url, "OE_schema", "OE_schema"); 

    Statement stmt=conn.createStatement(); 

    ResultSet rs= stmt.executeQuery("select NAME from MULTIBYTEINFA332115"); 
    while(rs.next()){ 
     System.out.println(" "+rs.getString(1)); 
    } 

를 그것은 이클립스 콘솔 개의 결과 :

? 
subhan 
? 
+0

http://www.javaworld.com/javaworld/jw-04-2004/jw-0419-multibytes.html?page=2 – happy

답변

0

시도 -Dfile.encoding = UTF-8을 eclispe.ini에 추가하십시오.

+1

나는 System.out에 달렸다 .println ("Estée Lauder 汉"); 내 이클립스에서 (Windows에서) 이것은 콘솔에서 직접 copypaste - Estée Lauder 汉 –

3

Windows의 콘솔은 기본적으로 라틴 문자 세트를 표시하므로 UTF-8 및 UTF-16 문자가 종종 문제가됩니다.

실행 설정의 경우 기본값이 아닌 요구 사항으로 실행하려는 각 앱의 공통 탭에서 인코딩을 설정해야합니다.

과 같이 :

enter image description here

관련 문제