Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблема с кодировкой при записи в базу. Проблема с кириллицей / 13 сообщений из 13, страница 1 из 1
24.04.2018, 08:09
    #39635115
Rustam Ergashev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой при записи в базу. Проблема с кириллицей
Здравствуйте. Есть проект делаю дополнения для него не могу изменит базу, метод соединения. Можно сделать перекодировку внутри .jsp, javascript и при записи в базу oracle. Делаю передачу с .jsp формы данных для записи в базу. База на Oracle 11g там кодировка на NLS_CHARACTERSET=CL8ISO8859P5, jsp форма на <%@ page contentType="text/html;charset=Windows-1251" language="java"%>. Поискал на инете но не нашлось подходящий для меня метод, или не понял как сделать. Вот один из них при записи в базу
Код: plsql
1.
 convert(i_firstname, 'CL8ISO8859P5','cl8mswin1251') 

Результат= "А БуБЈБ?А?Аш". При передачи хотел сделать перекодировку но и это не получился. В другом проекте была такая функция
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
public String Convert(String s)
    {
        if(s == null || s.length() == 0)
            return s;
        try
        {
            String s1 = new String(s.getBytes("ISO-8859-1"), "Cp1251");
            for(int i = s1.indexOf('?', 0); i >= 0; i = s1.indexOf('?', i + 1))
                if(s.charAt(i) != '?')
                    return s;

            return s1;
        }
        catch(Exception exception)
        {
            return exception.toString();
        }
    }

но в этом проекте нет такой функции в class файле. Внедрить этот кусок кода свой проект не получился или неправильно сделал.
...
Рейтинг: 0 / 0
24.04.2018, 08:46
    #39635127
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой при записи в базу. Проблема с кириллицей
У вас что-то не работает без перекодировок?
Потому как, в нормальной ситуации, драйвер сам перекодирует текстовые данные из кодировки базы в кодировку приложения.
...
Рейтинг: 0 / 0
24.04.2018, 08:47
    #39635128
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой при записи в базу. Проблема с кириллицей
Rustam Ergashev
Код: java
1.
            String s1 = new String(s.getBytes("ISO-8859-1"), "Cp1251");

И, кстати, ISO-Cyrilic это 8859- 5
...
Рейтинг: 0 / 0
24.04.2018, 09:55
    #39635148
Rustam Ergashev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой при записи в базу. Проблема с кириллицей
Basil A. SidorovУ вас что-то не работает без перекодировок?
Потому как, в нормальной ситуации, драйвер сам перекодирует текстовые данные из кодировки базы в кодировку приложения.
Без перекодировки кириллицу сохраняет в не читаемом виде.
...
Рейтинг: 0 / 0
24.04.2018, 10:45
    #39635174
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой при записи в базу. Проблема с кириллицей
Rustam Ergashev,

імхо

'CL8ISO8859P5' 'cl8mswin1251' в одном "cуперсете"

Вам ничего не надо перекодировать
надо правильно для приложения выставить (напр NLS_LANG=UKRAINIAN_UKRAINE. CL8MSWIN1251 )
оракля сам перекодирует

.....
stax
...
Рейтинг: 0 / 0
24.04.2018, 11:33
    #39635227
Rustam Ergashev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой при записи в базу. Проблема с кириллицей
StaxRustam Ergashev,

імхо

'CL8ISO8859P5' 'cl8mswin1251' в одном "cуперсете"

Вам ничего не надо перекодировать
надо правильно для приложения выставить (напр NLS_LANG=UKRAINIAN_UKRAINE. CL8MSWIN1251 )
оракля сам перекодирует

.....
stax
я не могу изменить этот параметр. На сервере уже много лет работают другие проекты.
...
Рейтинг: 0 / 0
24.04.2018, 11:42
    #39635235
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой при записи в базу. Проблема с кириллицей
Stax'CL8ISO8859P5' 'cl8mswin1251' в одном "cуперсете"

Вам ничего не надо перекодировать
надо правильно для приложения выставить (напр NLS_LANG=UKRAINIAN_UKRAINE. CL8MSWIN1251 )
оракля сам перекодирует
Хинт: у него java в середине.
...но ТС, мягко говоря, не очень понимает что делает, отсюда проблемы.
...
Рейтинг: 0 / 0
24.04.2018, 12:44
    #39635285
Rustam Ergashev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой при записи в базу. Проблема с кириллицей
[quot andrey_anonymous]Stax'CL8ISO8859P5' 'cl8mswin1251' в одном "cуперсете"


...но ТС, мягко говоря, не очень понимает что делает, отсюда проблемы.
В точку Сделал форму. Коннект в базу есть. Заполнил форму. Записал данные в базу. В базе Кириллица крякаобразная. Латиница без проблем сохраняется.
...
Рейтинг: 0 / 0
24.04.2018, 13:13
    #39635316
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой при записи в базу. Проблема с кириллицей
Rustam ErgashevСделал форму. Коннект в базу есть. Заполнил форму. Записал данные в базу.

Прочитать перед этим Oracle Globalization Guide не смог. Продолжайте программировать
методом тыка.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.04.2018, 13:30
    #39635346
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой при записи в базу. Проблема с кириллицей
Тут ещё и кодировки в вебе надо изучать.
В том числе, чтобы отучиться проставлять в коде страницы вещи, в которых сервер может разобраться и без помощи программиста.
...
Рейтинг: 0 / 0
24.04.2018, 14:28
    #39635435
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой при записи в базу. Проблема с кириллицей
Rustam ErgashevStaxRustam Ergashev,

імхо

'CL8ISO8859P5' 'cl8mswin1251' в одном "cуперсете"

Вам ничего не надо перекодировать
надо правильно для приложения выставить (напр NLS_LANG=UKRAINIAN_UKRAINE. CL8MSWIN1251 )
оракля сам перекодирует

.....
stax
я не могу изменить этот параметр. На сервере уже много лет работают другие проекты.

Для начала

iso1 - не имеет однозначного отображения на cp1251
русская кодировка iso5

Код: plsql
1.
String s1 = new String(s.getBytes("ISO-8859-5"), "Cp1251");
...
Рейтинг: 0 / 0
25.04.2018, 10:06
    #39635845
Rustam Ergashev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой при записи в базу. Проблема с кириллицей
Vadim LejninRustam Ergashevпропущено...

я не могу изменить этот параметр. На сервере уже много лет работают другие проекты.

Для начала

iso1 - не имеет однозначного отображения на cp1251
русская кодировка iso5

Код: plsql
1.
String s1 = new String(s.getBytes("ISO-8859-5"), "Cp1251");


Этот код был для примера
...
Рейтинг: 0 / 0
25.04.2018, 12:26
    #39635960
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с кодировкой при записи в базу. Проблема с кириллицей
Rustam ErgashevVadim Lejninпропущено...
iso1 - не имеет однозначного отображения на cp1251
русская кодировка iso5

Код: plsql
1.
String s1 = new String(s.getBytes("ISO-8859-5"), "Cp1251");


Этот код был для примера
Этот пример ярко проиллюстрировал отсутствие понимания процессов.
Причем дважды.
Принимать поток iso8859-5 как ISO8859-1 - уже ошибка на входе.
Конвертить его в 1251 внутри java под выдачу в JDBC - вторая.
Прочтите все-таки globalization support guide, узнаете много полезного.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проблема с кодировкой при записи в базу. Проблема с кириллицей / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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