Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 124

Как запихнуть русские буквы в БД из jsp?

28.12.2010, 21:54. Показов 3084. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сабж.
БД - MySQL
На всех jsp стоит pageEncoding='cp1251'
соединение получается из MysqlConnectionPoolDataSource с такими настройками:
dbcp.setDatabaseName(dbName+'?useUnicode =true&characterEncoding=cp1251');
с горя написал фильтр, выставляющий запросу такую-же кодировку
в БД упорно '?' вместо русских букв

народ, огромная просьба - без флуда, расскажите наконец, что для этого надо?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.12.2010, 21:54
Ответы с готовыми решениями:

Как получить русские буквы из request /jsp/
русские буквы отображаются вопросами <%@page contentType='text/html;charset=windows-1251' %> <HTML> <HEAD> ...

JSP+javabeans - русские буквы
Здравствуйте ! Подключаюсь к обсуждению вечной проблемы ??? в страницах JSP. Раньше хранил переменные в Session и с русскими проблем не...

Надо поддерживать русские буквы в приложении html (form, submit) <-> jsp(servlet, Struts Action) <-> MySql
Привет! Знаю, что вопрос избитый, но просьба не пинать сильно. Проблема в следующем, надо поддерживать русские буквы в приложении ...

7
0 / 0 / 0
Регистрация: 12.11.2010
Сообщений: 7
29.12.2010, 20:22
когда я воевал с кодировками решающим ударом было добавление следующей строко в файл my.ini (который то ли в корне диска C: то ли в каталоге Windows):

default-character-set=cp1251
0
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 124
29.12.2010, 20:43  [ТС]
ну, если бы все было так просто, было бы неинтересно жить
я надеюсь найти решение, не зависящее от настроек сервера (мало ли, чего хостеры туда напишут )
0
0 / 0 / 0
Регистрация: 05.08.2010
Сообщений: 49
30.12.2010, 07:14
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!-- Example filter to set character encoding on each request -->
    <filter>
        <filter-name>Set Character Encoding</filter-name>
        <filter-class>filters.SetCharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>Cp1251</param-value>
        </init-param>
    </filter>
 
<!-- Example filter mapping to apply the 'Set Character Encoding' filter
     to *all* requests processed by this web application -->
 
    <filter-mapping>
        <filter-name>Set Character Encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
это кусок веб xml.

А есть еще такая весч: SetCharacterEncodingFilter.java
Так вот - меня терзают смутные сомнеиния что это именно то что нужно.
0
paradise
30.12.2010, 09:36
Может твоя проблема не только в чтении? С MySql я не работал, но, по идее, вопросы могут появиться при записи информации. Это зависит от драйвера, который ты используешь. Большинство из них пытаются перекодировать твой ввод в кодировку, которая установленна на сервере БД.

Позже, при считывании, происходит обратное перекодирование. НО, т.к. у тебя указана кодировка (в строке подключения) cp1251 и jsp имеет туже кодировку, то перекодирования не происходит. Т.е. текст остается в той кодировке, которая используется в БД. И, как ты можешь догадаться, она не cp1251.

Решений несколько:
1. Поставить кодировку сервера в NONE. В этом случае все сложности по обработке кодировок ложаться на плечи программиста. На деле весь код как правило работает с одной кодировкой, и проблем не возникает.
(Однако, нужно себе отдавать отчет, что кодировка текста, который ты пишешь в базу будет той, в которой храниться исходный файл.)

2. Узнать, в какой кодировке работает БД и использовать ее. Самый правильный вариант.

З.Ы. Гемор с фильтрацией тоже может работать. В этом случае тебе тоже нужно значть кодировку БД. И иметь сервлет-фильтр, который будет парсить все паги твоего приложения.

Может не стоит усложнять?
3 / 3 / 3
Регистрация: 09.07.2008
Сообщений: 422
30.12.2010, 12:30
paradise прав - надо писать в кодировке, которая установлена на MySQL-е. Однако тут есть подводные камни - например, используемая БД кодировка не работает с кирилицей (ведь по-дефолту кодировка MySQL - latin1).

1. Вынеси настройки кодировки для своего приложения в конфигурационный файл. Ты всегда можешь узнать у хостера, какую кодировку юзает на данный момент БД и прописать ее в свой конфиг.

2. Если уж совсем жить стало худо - можно использовать вместо varchar полей blob. Конвертируешь строку в байт-массив с нужной кодировкой и пишешь в БД. Соответственно, при чтении при конвертации байт-массива в строку указываешь ту же самую кодировку.
0
paradise
30.12.2010, 14:25
В свою очередь, соглашусь с SVOLOCH.

Все же подумайте, стот ли вобще решать эту проблему?
Часто ли вы меняете хост БД?
Часто ли админ меняет кодировку БД?

Сдается мне, игра не стоит... ничего...
0 / 0 / 0
Регистрация: 04.05.2010
Сообщений: 124
31.12.2010, 14:36  [ТС]
Суть игры не в конкретной победе, а в выработке стратегии
заинтересованность народа радует, буду пробовать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.12.2010, 14:36
Помогаю со студенческими работами здесь

JSP страницы и русские символы
У меня такая проблема: Пересылаю от одной JSP к другой параметры с русско-буквенными значениями. Второй ловлю их, вывожу на экран и вижу...

Заменить в исходном файле русские буквы ‘к’ на буквы ‘т’, буквы ‘т’ на буквы ‘к’, буквы ‘л’ на буквы ‘в’, буквы ‘в’ на
Задание: Заменить в исходном файле русские буквы ‘к’ на буквы ‘т’, буквы ‘т’ на буквы ‘к’, буквы ‘л’ на буквы ‘в’, буквы ‘в’ на буквы ‘л’.

Как запихнуть запихнуть объект Me в Long?
Как запихнуть Me в Long, а потом достать его? Спасибо?

Как побороть русские буквы?
Есть статистика которую я хочу спарсить по ссылке http://www.liveinternet.ru/rating///today.tsv?page=1. Проблема в том, что русские буквы...

Как рисовать русские буквы в GD?
Добрый день! Подскажите пожалуйста как используя библиотеку GD, добиться нарисования русских букв (без каракуль). Пока получаются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru