Как вставить тайский язык в Oracle, используя байты Java? - PullRequest
0 голосов
/ 30 января 2012
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.

Не могли бы вы также дать мне некоторое представление о том, как использовать UTF-8 для кодирования строка, вставить в Oracle и получить его обратно?

1 Ответ

0 голосов
/ 30 января 2012

Oracle DB имеет возможность хранить несколько языков в своих таблицах. Для этого нам нужно выбрать правильный набор символов.

Вы можете столкнуться с проблемой из-за:

  1. Конфигурация NLS клиента, который вводил данные, была неправильно настроена.
  2. Конфигурация NLS клиента, который запрашивает данные, не настроена должным образом.

Один тайский символ в тайском наборе символов требует 3 байта в UTF8 или AL32UTF8.

и этот Вопрос поможет вам.

NLS_LANG=THAI_THAILAND.TH8TISASCII;

Для получения дополнительной информации Поддерживаемые Oracle локали и Интернационализация в Java

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...