2012-01-30 11 views
0
Connection con = null; 
String url = "jdbc:oracle:thin:@//localhost:1521/xe"; 
String driver = "oracle.jdbc.OracleDriver"; 
String s = "สวัสดี"; 
System.out.println("Thai hello :" + s); 
String temp = s.getBytes() + ""; 
String temp2 = new String(s.getBytes()); 
System.out.println("Thai temp bytes :" + temp); 
System.out.println("Thai temp2 bytes :" + temp2); 
try { 
    Class.forName(driver); 
    con = DriverManager.getConnection(url, "system", "xxxxx"); 

    try { 
     PreparedStatement st = con.prepareStatement("INSERT into encodeleo VALUES(?)"); 
     st.setBytes(1, s.getBytes()); 
     st.executeUpdate(); 
     String temp1; 
     ResultSet rs = st.executeQuery("select name from encodeleo"); 
     rs.next(); 
     temp1 = new String(rs.getBytes("name")); 
     System.out.println("temp1 :" + temp1); 
     System.out.println("1 row affected"); 
    } catch (SQLException se) { 
     se.printStackTrace(); 
     System.out.println("SQL statement is not executed!"); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

私はUTF-8を使ってみましたが、Javaで他の言語をエンコードしてデコードできませんでした。Javaバイトを使用してOracleにタイ語を挿入する方法は?

UTF-8を使用して 文字列をエンコードし、Oracleに挿入して取得する方法についても、私に教えてください。

答えて

0

Oracle DBには、複数の言語をテーブルに格納する機能があります。この目的に適した文字セットを選択する必要があります。

あなたは起因する問題に直面して:データを入力し、クライアントのNLS構成は、適切に構成されていなかった

  1. データを取得するクライアントのNLS構成が正しく構成されていません。

タイ文字セットのタイ文字の1つに、UTF8またはAL32UTF8で3バイトが必要です。

とこのQuestionがお手伝いします。

NLS_LANG=THAI_THAILAND.TH8TISASCII; 

詳細情報Oracle Supported LocalesInternationalization in Java

+0

にとっては便利感謝アザド!!!!!!!!ました –

関連する問題