powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как правильно добавлять кириллический текст в БД с ActionForm
8 сообщений из 8, страница 1 из 1
Как правильно добавлять кириллический текст в БД с ActionForm
    #33573832
sednivo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Строчки с ArticleForm поступают на ArticleDTO, потом я хочу их добавить в базу даных:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
sQuery = "INSERT INTO articles VALUES (null, '"+
 article.getName()+"','"+
article.getFirst_par()+"','"+
article.getText()+"',"+
article.getUser_id()+"," +
"now(),'"+
article.getFoto_name()+"')";


DataOutputStream out =  new  DataOutputStream( new  FileOutputStream("/home/wasyl/tmp/log.txt", true));

out.write(sQuery.getBytes("Cp1251"));
out.write("\n".getBytes());
out.write(sQuery.getBytes("utf-8"));
out.write("\n".getBytes());
out.write(sQuery.getBytes());
out.write("\n".getBytes());

В utf-варианте получаю в файле стоку в какой-то непонятной кодировке, в других вариантах только знаки вопроса вместо кириллических букв.

БД -- mysql, работаю со Struts-ом
...
Рейтинг: 0 / 0
Как правильно добавлять кириллический текст в БД с ActionForm
    #33573860
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверьте, уважаемый:

а) таблицы должны быть сконфигурированы для UTF-8:

CHARACTER SET utf8 COLLATE utf8_general_ci

б) соединение должно быть сконфигурировано для него же:

jdbc:mysql://localhost:3306/dbName?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8
...
Рейтинг: 0 / 0
Как правильно добавлять кириллический текст в БД с ActionForm
    #33574692
sednivo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле я хочу, чтобы в БД были данные в windows-1251 кодировке.

Я думаю, что проблема не в mysql, так как sql-скрипт, где в базу додаются даные в кодировке cp-1251, добавляет все корректно.

Я не знаю, как мне в коде java сформировать запрос на добавления данных в БД в кодировке cp1251??
...
Рейтинг: 0 / 0
Как правильно добавлять кириллический текст в БД с ActionForm
    #33574888
Макарон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
когда-то давным давно писал так:

Код: plaintext
1.
request.setCharacterEncoding("Windows-1251");
response.setContentType("text/html; charset=Windows-1251");
...
Рейтинг: 0 / 0
Как правильно добавлять кириллический текст в БД с ActionForm
    #33575063
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sednivoНа самом деле я хочу, чтобы в БД были данные в windows-1251 кодировке.

Ну, определи таблицы и соединение соответственно:

а) таблицы должны быть сконфигурированы для UTF-8:

CHARACTER SET cp1251 COLLATE cp1251_general_ci

б) соединение должно быть сконфигурировано для него же:

Код: plaintext
jdbc:mysql://localhost: 3306 /dbName?autoReconnect=true&useUnicode=true&characterEncoding=Cp1251

Да, Макарон грамотно советует насчет запроса / ответа, только маленько путается в обозначениях Java и HTTP charsets: перед отправкой ответа следует указать

Код: plaintext
response.setContentType("text/html; charset=windows-1251");

(ну, или "text/xml; charset=windows-1251" - смотря какой контент), а перед обработкой запроса

Код: plaintext
request.setCharacterEncoding("Cp1251");
...
Рейтинг: 0 / 0
Как правильно добавлять кириллический текст в БД с ActionForm
    #33575067
М.Голованов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, вверху должно быть

а) таблицы должны быть сконфигурированы для Cp1251:
...
Рейтинг: 0 / 0
Как правильно добавлять кириллический текст в БД с ActionForm
    #33575438
ТимоН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так пишу:
PreparedStatement pstatement=connection.prepareStatement(SQLInsertString.toString());
Bean.getSomeField().getBytes("ISO-8859-1");
pstatement.executeUpdate();
...
Рейтинг: 0 / 0
Как правильно добавлять кириллический текст в БД с ActionForm
    #33575471
sednivo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оказывается я request.setCharacterEncoding("Cp1251"); не там делал, его надо вызывать ни в jsp-файле, ни в Action.execute, так как там ActionForm уже заполнено соответствующим request-ом.

Я написал CustomRequestProcessor и делал request.setCharacterEncoding там.

Всем большое спасибо за помощь.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как правильно добавлять кириллический текст в БД с ActionForm
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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