Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Log4J и JDBCAppender. Кодировка. / 7 сообщений из 7, страница 1 из 1
17.08.2005, 11:27
    #33219958
Sashich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Log4J и JDBCAppender. Кодировка.
Ребята, знаю что вопросы с кодировками вас всех достали. Поэтому стесняюсь даже спросить. И всё же.
Есть у меня 2 аppender'a: FileAppender и JdbcAppender. Последний пишет в MySql.
FileAppender корректно пишет русские буквы в кодировке cp1251. Мне не известно в какой кодировке пишет JdbcAppender(логично, что в той же cp1251), но если соединится с БД клиентом mysql, то вместо русских букв - ????????????????. Настройки mysql:
[mysqld]
default-character-set = latin1
[mysql]
default-character-set = cp1251
A также при создании таблиц и полей указана cp1251.

Вопросы.
1. Как Log4J узнаёт в какой кодировке ему делать записи?
2. Коннект к базе log4j делает с какой кодировкой?
Пока всё.
...
Рейтинг: 0 / 0
17.08.2005, 12:19
    #33220169
gaper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Log4J и JDBCAppender. Кодировка.
при подключении тоже надо указывать кодировку. По крайней мере пока я этого не сделал, тоже были проблемы. Точно имя парамера не помню. Я его добавлял в url, что-то вроде: <jdbc-connect-url>?charset=Cp1251
...
Рейтинг: 0 / 0
17.08.2005, 12:49
    #33220285
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Log4J и JDBCAppender. Кодировка.
авторA также при создании таблиц и полей указана cp1251.
а вот это зря, при работе с MySQL таблицы нужно создавать в UTF-8, это в 99% случаев избавляет от гемороя с кодировкой. При конекте нужно указывать - <jdbc-connect-url>?charset=Cp1251&useUnicode=true, имена параметров точно не помню... лучше перепроверить.
...
Рейтинг: 0 / 0
17.08.2005, 13:31
    #33220479
gaper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Log4J и JDBCAppender. Кодировка.
воистину, вот имена:
useUnicode=true&characterEncoding=Cp1251
...
Рейтинг: 0 / 0
17.08.2005, 14:37
    #33220746
Sashich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Log4J и JDBCAppender. Кодировка.
Теперь выпадает Exception
Код: plaintext
1.
2.
log4j:ERROR
java.sql.SQLException: Unknown character set 'win1251' 
Бла....

gaperа вот это зря, при работе с MySQL таблицы нужно создавать в UTF-8, это в 99% случаев избавляет от гемороя с кодировкой.

А что можно создать таблицы как UTF-8, а затем писать в cp1251, и всё будет читаемо?
...
Рейтинг: 0 / 0
17.08.2005, 14:44
    #33220769
wessen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Log4J и JDBCAppender. Кодировка.
Теперь выпадает Exception

попробуй windows-1251 или cp1251

А что можно создать таблицы как UTF-8, а затем писать в cp1251, и всё будет читаемо?

да, все будет читаемо, на то оно и UTF-8, в нем все символы вселенной...
...
Рейтинг: 0 / 0
18.08.2005, 11:41
    #33222565
Sashich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Log4J и JDBCAppender. Кодировка.
Как решил проблему.
Таблицы Mysql в utf-8. Коннект сделал c параметрами [jdbcurl]?useUnicode=true&characterEncoding=utf8. Причём данные из формы приходили в cp1251!

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


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