Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / опять про кодировку для записи в Oracle / 17 сообщений из 17, страница 1 из 1
18.09.2006, 12:50:21
    #33993642
mastanik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять про кодировку для записи в Oracle
Здравствуйте,

подскажите плиз (еще раз), как занести русский текст в Оракл через .jsp -> bean, если в БД чарсет установлен CL8ISO8859P5?

Спасибо большущее
...
Рейтинг: 0 / 0
18.09.2006, 13:01:50
    #33993690
Penkov Vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять про кодировку для записи в Oracle
а в сервлет приходит нормальный текст?

-----------------------------------
The Bat + My Gate
IE - отстой. Искренне желаю смерти его создателям

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
18.09.2006, 13:03:36
    #33993701
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять про кодировку для записи в Oracle
mastanik wrote:
> подскажите плиз (еще раз), как занести русский текст в Оракл через .jsp
> -> bean, если в БД чарсет установлен CL8ISO8859P5?

Ипользуй поля типа NVARCHAR2.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
18.09.2006, 13:36:19
    #33993861
mastanik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять про кодировку для записи в Oracle
А какой тип соответствует NVARCHAR2 в Java, обычный стринг не лезет
...
Рейтинг: 0 / 0
18.09.2006, 13:37:55
    #33993870
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять про кодировку для записи в Oracle
mastanik wrote:

> А какой тип соответствует NVARCHAR2 в Java, обычный стринг не лезет

Отчего ж не лезет? NVARCHAR2 это юникодный VARCHAR2.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
18.09.2006, 13:42:42
    #33993890
mastanik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять про кодировку для записи в Oracle
фиг знает, изменил в табличке с VARCHAR2 на NVARCHAR2, данные просто не заносятся и все. никаких ексепшенов не вылетает.
...
Рейтинг: 0 / 0
18.09.2006, 13:43:52
    #33993895
mastanik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять про кодировку для записи в Oracle
http://www.stanford.edu/dept/itss/docs/oracle/10g/java.101/b10983/datamap.htm

тут вот пишут, что какой-то oracle.sql.NString
...
Рейтинг: 0 / 0
18.09.2006, 13:57:21
    #33993956
mastanik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять про кодировку для записи в Oracle
хотя нет, туплю

ERROR at line 1:
ORA-12704: character set mismatch
...
Рейтинг: 0 / 0
18.09.2006, 14:02:24
    #33993981
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять про кодировку для записи в Oracle
Покажи, кодировки своей базы:
Код: plaintext
select * from sys.props$ where name like 'NLS%CHARACTERSET';

А так все заносится:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
 import  java.sql.*;

 public   class  NCharTest {

   private   static   final  String USERNAME = "<username>";

   private   static   final  String PASSWORD = "<password>";

   private   static   final  String SERVER = "jdbc:oracle:thin:@<server>:1521:<SERVICE_NAME>";

   public   static   void  main(String args[])
     throws  Exception {
    DriverManager.registerDriver( new  oracle.jdbc.OracleDriver());
    Connection con = DriverManager.getConnection(SERVER, USERNAME, PASSWORD);
    Statement st = con.createStatement();
    PreparedStatement pst;

     try  {
      st.execute("drop table test_nchar");
    }  catch  (SQLException e) {}
    st.execute("create table test_nchar(ndata nvarchar2(32))");

    String stEscape = "ЙЦУКЕ";
    System.out.println("stEscape=" + stEscape);
    pst = con.prepareStatement("insert into test_nchar (ndata) values (?)");
    pst.setString( 1 , stEscape);
    pst.execute();
    ResultSet rs = st.executeQuery("select * from test_nchar");
     while  (rs.next()) {
      System.out.println(rs.getString( 1 ));
    }

    rs.close();
    st.close();
    con.close();
  }
}
...
Рейтинг: 0 / 0
18.09.2006, 14:13:34
    #33994033
mastanik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять про кодировку для записи в Oracle
выводит CL8ISO8859P5

кстати, у меня Оракл 8.

пробовал так
http://www.oracle.com/technology/sample_code/tech/java/codesnippet/jdbc/nchar/readme.html

не выходит.
...
Рейтинг: 0 / 0
18.09.2006, 14:28:25
    #33994093
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять про кодировку для записи в Oracle
mastanikвыводит CL8ISO8859P5

кстати, у меня Оракл 8.
Это значение параметра NLS_NCHAR_CHARACTERSET? Тогда имхо придется менять кодировку самой БД, через полное пересоздание или как-то иначе, но на свой страх и риск, например: /topic/278953#2522444

Есть в 8-ке такая багофича, что для Nvarchar\'ов можно выбрать не-юникод. С 9-ки уже нельзя.
...
Рейтинг: 0 / 0
18.09.2006, 15:30:28
    #33994353
mastanik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять про кодировку для записи в Oracle
да, это значение NLS_NCHAR_CHARACTERSET.

а какую кодировку надо установить, чтобы все нормальненько было?
...
Рейтинг: 0 / 0
18.09.2006, 15:46:37
    #33994417
Denis Popov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять про кодировку для записи в Oracle
mastanik wrote:

> да, это значение NLS_NCHAR_CHARACTERSET.
>
> а какую кодировку надо установить, чтобы все нормальненько было?

Если тебе к английским нужны только русские, то при создании БД укажи для нее
кодировку (т.е. NLS_CHARACTERSET) CL8MWWIN1251, а для NLS_NCHAR_CHARACTERSET
возьми какой-нибудь юникод, UTF8, например.
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
18.09.2006, 15:48:51
    #33994428
mastanik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять про кодировку для записи в Oracle
угу, а если мне не только русский необходим к английскому, то все надо в UTF-8 переводить...плохо

спасибо за помощь!
...
Рейтинг: 0 / 0
18.09.2006, 15:51:38
    #33994437
mastanik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять про кодировку для записи в Oracle
и без этого точно никак, да?
...
Рейтинг: 0 / 0
18.09.2006, 16:09:04
    #33994504
garry_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять про кодировку для записи в Oracle
Можно поэксперементировать со следующим фрагментом. Может поможет
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
   public   static  String getConvertString(String s) 
  {
     byte  b[];
    String s1;

     try {
      b=s.getBytes("ISO-8859-1");
      s1= new  String(b,"windows-1251");
    }
     catch (Exception e){
       System.out.println("Ошибка");
       System.out.println(e.toString());
    }
     return  s1;
  }  
...
Рейтинг: 0 / 0
18.09.2006, 16:21:50
    #33994554
mastanik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять про кодировку для записи в Oracle
нет, только вопросы одни отображаются
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / опять про кодировку для записи в Oracle / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]