Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Struts Кодировка из UTF-8 в Сp1251 
:(
    Опции темы
seth
Дата 24.9.2006, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: 1
Всего: 1



Есть jsp и bean (в котором описаны функции для загрузки или записи строки в БД)
БД MySql с cp1251

если на jsp выставлять кодировку utf-8 то с БД читается все нормально
если на jsp выставлять кодировку cp1251 то записуется в БД все нормально

есть одна страничка на которой совмещены эти функции: соответственно необходимо преобразовывать... Пробовал это:

String newString = new String(oldString.getBytes("UTF-8"), "Cp1251");
не хочет... smile

кто что посоветует??


--------------------
PM MAIL   Вверх
Nobody
Дата 24.9.2006, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 25.8.2003
Где: Россия, Москва

Репутация: 1
Всего: 16



Посоветую выкинуть 1251 и делать всё в юникоде.


--------------------
Алгоритм помещения вопросов на форуме
Выражаем спасибо вот ТАК
Use the Source, Luke!
PM MAIL WWW ICQ   Вверх
Tony
  Дата 24.9.2006, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



Цитата(Nobody @ 24.9.2006,  17:56)
Посоветую выкинуть 1251 и делать всё в юникоде.

Согласен.Пиши всё в UTF-8.


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
seth
Дата 26.9.2006, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: 1
Всего: 1



Цитата(Tony @ 24.9.2006,  21:03)
Цитата(Nobody @ 24.9.2006,  17:56)
Посоветую выкинуть 1251 и делать всё в юникоде.

Согласен.Пиши всё в UTF-8.

хммм - на UTF-8 ничего не получилось - написал на 1251 (т.к. БД в 1251)


--------------------
PM MAIL   Вверх
tux
Дата 27.9.2006, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Цитата(seth @  26.9.2006,  23:39 Найти цитируемый пост)
хммм - на UTF-8 ничего не получилось - написал на 1251 (т.к. БД в 1251) 

А какая связь между БД в 1251 и веб-страницей в 1251?
PM MAIL Skype GTalk Jabber YIM   Вверх
Maksym
Дата 27.9.2006, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 24
Всего: 62



seth
Что имеется в виду под "ничего не получилось"? где именно сбоит кодировка?
PM MAIL   Вверх
seth
Дата 27.9.2006, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: 1
Всего: 1



Цитата(Maksym @ 27.9.2006,  10:24)
seth
Что имеется в виду под "ничего не получилось"? где именно сбоит кодировка?

Цитата

если на jsp выставлять кодировку utf-8 то с БД читается все нормально
если на jsp выставлять кодировку cp1251 то записуется в БД все нормально



--------------------
PM MAIL   Вверх
Maksym
Дата 28.9.2006, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 24
Всего: 62



Вот такое дело где-нибудь присутствует:
request.setCharacterEncoding("UTF-8");
?
PM MAIL   Вверх
seth
Дата 28.9.2006, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: 1
Всего: 1



Цитата(Maksym @ 28.9.2006,  12:19)
Вот такое дело где-нибудь присутствует:
request.setCharacterEncoding("UTF-8");
?

пробовал - не помогает... smile
проблема решилась с установкой кодировки в windows-1251

Это сообщение отредактировал(а) seth - 28.9.2006, 23:12


--------------------
PM MAIL   Вверх
Stampede
Дата 29.9.2006, 00:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



seth, тут похоже вот что происходит. В браузер-серверном взаимодействии есть несколько мест, где программным компонентам требуется знать кодировку. Давай сначала рассмотрим ситуацию с чтением из базы - то, что ты называешь:
Цитата(seth @  24.9.2006,  03:52 Найти цитируемый пост)
если на jsp выставлять кодировку utf-8 то с БД читается все нормально

Ты говоришь, что база в 1251. Значит, драйвер базы все делает правильно, и база тут вообще ни при чем. То есть дело в том, как происходит конвертация между внутренним представлением символов Java (Unicode) и тем, как они передаются по сети и/или отображаются в браузере. Поэтому давай по порядку.

Сначала тебе надо засунуть твой вывод в поток в правильной кодировке. Для этого существует метод response.setCharacterEncoding("UTF-8"). Можно также воспользоваться методом response.setContentType("text/html;charset=UTF-8") - это приведет к такому же эффекту.

Но здесь имеются всякие подводные грабли, о которых следует знать. Во-первых, установка кодировки ответа должна быть произведена до первого обращения к response.getWriter(). Это потому что выводной поток создается сразу в той кодировке, которая указана (или дефолтной, 8859-1). Так что если поток уже создан, все последующие попытки установить какую бы то ни было кодировку игнлрируются.

У тебя как у разработчика не всегда есть контроль над тем, в какой момент происходит получение Writer'а, поэтому одно из простых решений - это написать фильтр, который будет выставлять нужную кодировку еще до всякой обработки. Правда, это подходит только для ситуаций, когда кодировка одна для всего сайта. Именно поэтому есть смысл прислушаться к мнению товарищей, предлагавших тебе все делать в UTF-8, ибо с ней можно вообще забыть, что есть какая-то проблема кодировок. Более того, с UTF-8 становится возможным выводить на странице смесь на разных языках, и каждый язык будет отображаться корректно.

В случае с JSP возникает еще одна проблема: там выражение <%@ page contentType="text/html;charset=UTF-8" %> в том числе сообщает контейнеру о том, в какой кодировке читать исходный JSP файл. Поэтому если выводим в UTF-8, то и JSP файл нужно сохранять в UTF-8, а не то получим вопросики вместо русских букв.

Ты говоришь, что при кодировке UTF-8 русские буквы из базы отображаются нормально. Хорошо, давай для начала убедимся, что все присходит так, как мы думаем должно происходит. Например, узнаем, какие заголовки приходят со страницей. Это можно посмотреть, например, в Firefox с устагновленным плагином Web Developer Extension.

Еще хорошо было бы узнать, не прописан ли мета-тег <meta http-equiv="Content-Type" content="..."> внутри тега <head> приходящей страницы, и если да, то что там внутри атрибута content.

Дальше будем плясать от этого.

Добавлено @ 00:40 
Цитата(seth @  28.9.2006,  14:10 Найти цитируемый пост)
проблема решилась с установкой кодировки в windows-1251


Пока писал ответ, пришло сообшение о решении проблемы. Я только хочу предупрелить 
seth, что это не решение, а лишь отсрочка. Потому что где-то что происходит не так, как должно происходить. Например, для меня это означает, что браузер шлет POST-данные в windows-1251 - и скорее всего только потому, что это умолчальная локаль на данном конкретном компьютере. Если попробовать то же самое с машины, где локаль английская, то скорее всего в базу попадут кракозябры. Между тем браузер обязан засылать ввод в той кодировке, в котрой получил страницу. Так что давай все-таки смотреть на заголовки ответа.
PM WWW   Вверх
Maksym
Дата 29.9.2006, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

Репутация: 24
Всего: 62



Stampede
Великолепный ответ, аплодирую!  smile 
Цитата
Сначала тебе надо засунуть твой вывод в поток в правильной кодировке. Для этого существует метод response.setCharacterEncoding("UTF-8"). Можно также воспользоваться методом response.setContentType("text/html;charset=UTF-8") - это приведет к такому же эффекту.

Но здесь имеются всякие подводные грабли, о которых следует знать. Во-первых, установка кодировки ответа должна быть произведена до первого обращения к response.getWriter(). Это потому что выводной поток создается сразу в той кодировке, которая указана (или дефолтной, 8859-1). Так что если поток уже создан, все последующие попытки установить какую бы то ни было кодировку игнлрируются.

По этому поводу, tux дал готовый рецепт здесь.

PM MAIL   Вверх
seth
Дата 30.9.2006, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: 1
Всего: 1



Спасибо за ответ - к сожалению ничего конкретного добавить не могу - необходимо было перенастраивать систему smile
ну могу кое что добавить - таблицу в mysqle сделал на utf-8

На страничке такое:
Код

<%@ page contentType="text/html; charset=UTF-8" language="java" %>
<%@ taglib prefix="html" uri="/tags/struts-html"%>
<%@ taglib prefix="bean" uri="/tags/struts-bean"%>
<html:html locale="true">
<head>
    <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8" />


при дебаге в бин приходит такое:

Õàðüêîâ

т.е. вроде UTF-8 и все правильно - только на страничке отображается точно также (т.е. крокозябры)


--------------------
PM MAIL   Вверх
tux
Дата 30.9.2006, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



seth, вот это:
Цитата(seth @  30.9.2006,  18:14 Найти цитируемый пост)
Õàðüêîâ

совсем не то, что должно быть, должны быть обычные русские буквы. Как ты выполняешь подключение к MySQL? У тебя в url подключения есть параметры useUnicode и characterEncoding? Строка подключения должны выглядеть примерно так:
Код

jdbc:mysql://<host>/<database>?useUnicode=true&characterEncoding=utf-8

PM MAIL Skype GTalk Jabber YIM   Вверх
Stampede
Дата 30.9.2006, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Цитата(seth @  30.9.2006,  04:14 Найти цитируемый пост)
при дебаге в бин приходит такое:

Õàðüêîâ


Вот это, кстати, выглядит обнадеживающе (я могу даже сказать, что там написано что-то про твой город smile). Остается только уточнить, что за бин и чем смотрим. Не исключено, что все как раз хорошо. 

И по прежнему нет ответа на жизненно важный вопрос: какие заголовки HTTP приходят со страницей.
PM WWW   Вверх
seth
Дата 30.9.2006, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: 1
Всего: 1



Цитата(tux @ 30.9.2006,  13:35)
seth, вот это:
Цитата(seth @  30.9.2006,  18:14 Найти цитируемый пост)
Õàðüêîâ

совсем не то, что должно быть, должны быть обычные русские буквы. Как ты выполняешь подключение к MySQL? У тебя в url подключения есть параметры useUnicode и characterEncoding? Строка подключения должны выглядеть примерно так:
Код

jdbc:mysql://<host>/<database>?useUnicode=true&characterEncoding=utf-8

прописал это в подключении - ничего не изменилось smile

вотъ бин

   
Код

public String getFolder(int id){
        ResultSet rs;
        String formatted="";
        try{
            Class.forName(class_name);
            Connection con=DriverManager.getConnection(url, user, password);
            Statement st=con.createStatement();
            rs=st.executeQuery("select * from "+table_name+" where parentId="+id+" AND isParam='N'");
            formatted=formatChildrenJS(rs);
            rs.close();
            st.close();
            con.close();
        } catch (ClassNotFoundException e){
            error="Class not found org.gjt.mm.mysql.Driver";
        }
        catch (SQLException e){
            error="Can't establish connection to "+url;
        }
        return formatted;
    }
    private String formatChildrenJS(ResultSet rs) throws SQLException {
        StringBuffer l_ch = new StringBuffer();
        while (rs.next()){
            String parent;
            if (rs.getInt("parentId")==0) //aka Root
                parent="Root";
            else parent="vart["+rs.getInt("parentId")+"]";
            String self="vart["+rs.getInt("id")+"]";
            String link="\"javascript:go('ViewSection.do?id="+rs.getInt("id")+"');\"";
            String text=rs.getString("text");
            text=text.replace("\\", "\\\\");
            text=text.replace("\"", "\\\"");
            if (parent.equals("Root")) { //добавление картинок - если в root
                String folderIcon="foldericon.png"; //default
                String folderOpenIcon="openfoldericon.png";  //default
                if (rs.getString("folderIcon")!=null && !rs.getString("folderIcon").equals("")) folderIcon=rs.getString("folderIcon");
                if (rs.getString("folderOpenIcon")!=null && !rs.getString("folderOpenIcon").equals("")) folderOpenIcon=rs.getString("folderOpenIcon");
                l_ch.append(self+"=new WebFXTreeItem(\""+text+"\", "+link+", "+parent+", 'icons/" +folderIcon+
                        "', 'icons/"+folderOpenIcon+"');\n");
            }
            else
                l_ch.append(self+"=new WebFXTreeItem(\""+text+"\", "+link+", "+parent+");\n");
            l_ch.append(getFolder(rs.getInt("id")));
        }
        return l_ch.toString();
    }


строка подключения:
jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf-8

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

ЗЗЗЫ использую коннектор mysql-connector-java-3.0.11-stable-bin.jar 

Это сообщение отредактировал(а) seth - 30.9.2006, 19:57


--------------------
PM MAIL   Вверх
seth
Дата 30.9.2006, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: 1
Всего: 1



Эти заголовки имелись ввиду?

Response Headers - http://localhost:8080/gg/index.jsp

Server: Apache-Coyote/1.1
Content-Type: text/html;charset=UTF-8
Content-Length: 323
Date: Sat, 30 Sep 2006 17:00:19 GMT

200 OK


Если нет - то где в этом плагине посмотреть то что надо?


--------------------
PM MAIL   Вверх
Stampede
Дата 30.9.2006, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Цитата(seth @  30.9.2006,  11:01 Найти цитируемый пост)
Эти заголовки имелись ввиду?


Да, эти. Теперь убедись, что "Content-Type: text/html;charset=UTF-8" присутствует и на той странице, на которой ты просматриваешь результаты, и на той, откуда засылаешь POST. Если все в порядке, то следующее, на что будем смотреть, это кодировка входящего запроса. Например, на странице JSP можно написать так:

Код

<p>Request encoding: <%= request.getCharacterEncoding(); %>
</p>


PM WWW   Вверх
seth
Дата 30.9.2006, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: 1
Всего: 1



Цитата(Stampede @ 30.9.2006,  23:07)
Цитата(seth @  30.9.2006,  11:01 Найти цитируемый пост)
Эти заголовки имелись ввиду?


Да, эти. Теперь убедись, что "Content-Type: text/html;charset=UTF-8" присутствует и на той странице, на которой ты просматриваешь результаты, и на той, откуда засылаешь POST. Если все в порядке, то следующее, на что будем смотреть, это кодировка входящего запроса. Например, на странице JSP можно написать так:

Код

<p>Request encoding: <%= request.getCharacterEncoding(); %>
</p>

Давайте для начала разберемся с выборкой из БД

Заголовок jsp на который выводятся данные я уже приводил
Код


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="html" uri="/tags/struts-html"%>
<%@ taglib prefix="bean" uri="/tags/struts-bean"%>
<html:html locale="true">
<head>
   <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8" />

бин тоже показывал

<%=request.getCharacterEncoding()%>
выдает 
null



--------------------
PM MAIL   Вверх
3x3
Дата 1.10.2006, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 261
Регистрация: 17.9.2006

Репутация: 5
Всего: 8



А как вы передаёте сервлету строку для вставки? В URL?


--------------------
Зачем платить больше,
когда можно заплатить дважды?
PM   Вверх
seth
Дата 1.10.2006, 00:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: 1
Всего: 1



Цитата(3x3 @ 1.10.2006,  00:27)
А как вы передаёте сервлету строку для вставки? В URL?

использую struts


--------------------
PM MAIL   Вверх
3x3
Дата 1.10.2006, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 261
Регистрация: 17.9.2006

Репутация: 5
Всего: 8



Цитата(seth @ 1.10.2006,  00:29)
Цитата(3x3 @ 1.10.2006,  00:27)
А как вы передаёте сервлету строку для вставки? В URL?

использую struts

Откуда берётся строка - из браузера?


--------------------
Зачем платить больше,
когда можно заплатить дважды?
PM   Вверх
seth
Дата 1.10.2006, 00:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: 1
Всего: 1



Цитата(3x3 @ 1.10.2006,  00:35)
Цитата(seth @ 1.10.2006,  00:29)
Цитата(3x3 @ 1.10.2006,  00:27)
А как вы передаёте сервлету строку для вставки? В URL?

использую struts

Откуда берётся строка - из браузера?

давайте для начала разберемся с выборкой из БД...


--------------------
PM MAIL   Вверх
Stampede
Дата 1.10.2006, 01:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Да, вот еще какую полезную вещь можно сделать: поменяй в форме method="post" на method="get", и тогда в адресной строке браузера адрес целевой страницы в части после знака вопроса будет содержать закодированную кириллическую строку. Любопытно было бы взглянуть, что она из себя представляет.

А что касается базы, то у меня нет сомнений, что там все кодируется нормально. Судя по симптомам, непонятности у тебя именно в вебном слое.

PM WWW   Вверх
3x3
Дата 1.10.2006, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 261
Регистрация: 17.9.2006

Репутация: 5
Всего: 8



Цитата(seth @ 1.10.2006,  00:44)
Цитата(3x3 @ 1.10.2006,  00:35)
Цитата(seth @ 1.10.2006,  00:29)
Цитата(3x3 @ 1.10.2006,  00:27)
А как вы передаёте сервлету строку для вставки? В URL?

использую struts

Откуда берётся строка - из браузера?

давайте для начала разберемся с выборкой из БД...

Она же у вас читается нормально в режиме UTF-8? Или я вас неправильно понял?

Добавлено @ 01:10 
Цитата(Stampede @ 1.10.2006,  01:01)
Да, вот еще какую полезную вещь можно сделать: поменяй в форме method="post" на method="get"

Он вроде не писал ничего про форму. При таких хидерах как выше и гетом буквы пойдут в форме %uXXXX. 
Поэтому сначала надо разобраться откуда вообще приходит строка в неправильной кодировке.


Это сообщение отредактировал(а) 3x3 - 1.10.2006, 01:11


--------------------
Зачем платить больше,
когда можно заплатить дважды?
PM   Вверх
Stampede
Дата 1.10.2006, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Цитата(3x3 @  30.9.2006,  16:02 Найти цитируемый пост)
При таких хидерах как выше и гетом буквы пойдут в форме %uXXXX. 


А вот в этом я как-раз и не уверен. Должны - да. Но судя по тому, что 
seth упоминал ранее, есть сильное подозрение, что приходит уже в 1251. Вот цитата:

Цитата(seth @  28.9.2006,  14:10 Найти цитируемый пост)
Цитата(Maksym @ 28.9.2006,  12:19)
Вот такое дело где-нибудь присутствует:
request.setCharacterEncoding("UTF-8");
?

пробовал - не помогает... smile
проблема решилась с установкой кодировки в windows-1251


Поэтому я и говорю, хотелось бы увидеть запрос браузера в чистом виде.
PM WWW   Вверх
3x3
Дата 1.10.2006, 01:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 261
Регистрация: 17.9.2006

Репутация: 5
Всего: 8



Цитата(Stampede @ 1.10.2006,  01:22)
Цитата(3x3 @  30.9.2006,  16:02 Найти цитируемый пост)
При таких хидерах как выше и гетом буквы пойдут в форме %uXXXX. 


А вот в этом я как-раз и не уверен. Должны - да. Но судя по тому, что 
seth упоминал ранее, есть сильное подозрение, что приходит уже в 1251. Вот цитата:

Цитата(seth @  28.9.2006,  14:10 Найти цитируемый пост)
Цитата(Maksym @ 28.9.2006,  12:19)
Вот такое дело где-нибудь присутствует:
request.setCharacterEncoding("UTF-8");
?

пробовал - не помогает... smile
проблема решилась с установкой кодировки в windows-1251


Поэтому я и говорю, хотелось бы увидеть запрос браузера в чистом виде.

Хм.. Воспроизвел проблему. Именно постом оно и кривляется если кодировку в браузере скидываешь на 1251 принудительно..

Добавлено @ 01:56 
еУМЙ РТЙОХДЙФЕМШОП УФБЧЙФШ ОЕРТБЧЙМШОХА ЛПДЙТПЧЛХ, ФП НПЦОП РЕТЕДБФШ УЕТЧЕТХ ОЕРТБЧЙМШОЩЕ ВХЛЧЩ


--------------------
Зачем платить больше,
когда можно заплатить дважды?
PM   Вверх
Stampede
Дата 1.10.2006, 02:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Цитата
Если принудительно ставить неправильную кодировку, то можно передать серверу неправильные буквы


Шпион Смит, вас разоблачили smile

PM WWW   Вверх
3x3
Дата 1.10.2006, 02:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 261
Регистрация: 17.9.2006

Репутация: 5
Всего: 8



smile

______


Вобщем воркэраунд для случая seth таков:
В самом начале обработки, до любых обращений к свойствам реквеста, приложение должно сообщить реквесту, в какой кодировке он получил запрос для приложения. В случае JSP-шки это означает, что её первая строка должна выглядеть так:
Код
<% if(request.getCharacterEncoding() == null) request.setCharacterEncoding("UTF-8"); %>




PS
Я потрясён этим обстоятельством... Сервер недопонимает в какой кодировке ему пришли данные POSTом.


Это сообщение отредактировал(а) 3x3 - 1.10.2006, 03:02


--------------------
Зачем платить больше,
когда можно заплатить дважды?
PM   Вверх
Stampede
Дата 1.10.2006, 03:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Цитата(3x3 @  30.9.2006,  17:57 Найти цитируемый пост)
Я потрясён этим обстоятельством... Сервер недопонимает в какой кодировке ему пришли данные POSTом.


Я тоже маленько потрясен. Только не сервером, а браузером. Тем, что он не сообщает, в какой кодировке он шлет данные запроса. А еще JSP. Не знаю, как в других контейнерах, но у меня в Jetty выражение <%@ page contentType="text/html;charset=KOI8-R" %> не приводит к выставлению заголовков ответа HTTP!

Вот так вот, век живи - век учись smile

ЗЫ. Да, и мы еще не знаем, какую роль во всем этом играет Struts, который, как выяснилось, тоже здесь фигурирует smile

PM WWW   Вверх
seth
Дата 1.10.2006, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: 1
Всего: 1



Уххххх - понаписывали smile
Я ведь чуть позже писал что перевел базу на UTF-8.....
и теперь не могу прочитать оттуда - с записью в БД даже не хочу еще разбиратся пока не будет нормально выводится....
поскольку Mysql 5 то судя по всему просто мой коннектор не поддерживает такое различие кодировок - либо надо качать новый коннектор (что проблематично) либо ставить старый mysql с которым все ок....
или мне еще тут чего-нить посоветуют....


--------------------
PM MAIL   Вверх
3x3
Дата 1.10.2006, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 261
Регистрация: 17.9.2006

Репутация: 5
Всего: 8



Цитата(seth @ 1.10.2006,  10:39)
Уххххх - понаписывали smile
Я ведь чуть позже писал что перевел базу на UTF-8.....
и теперь не могу прочитать оттуда - с записью в БД даже не хочу еще разбиратся пока не будет нормально выводится....
поскольку Mysql 5 то судя по всему просто мой коннектор не поддерживает такое различие кодировок - либо надо качать новый коннектор (что проблематично) либо ставить старый mysql с которым все ок....
или мне еще тут чего-нить посоветуют....

Не трогай базу. Работай в юникоде, как было, а что бы строки в нормальной кодировке были, просто пропиши в начале JSP-страниц:
Код

<% if(request.getCharacterEncoding() == null) request.setCharacterEncoding("UTF-8"); %>


Или в начале кода, отрабатывающего респонс:
Код

if(request.getCharacterEncoding() == null) request.setCharacterEncoding("UTF-8");


Это всё. Всё остальное - как в начале прописывал, укажи для UTF-8:
Код

<%@ page contentType="text/html; charset=UTF-8" language="java" %>






--------------------
Зачем платить больше,
когда можно заплатить дважды?
PM   Вверх
seth
Дата 1.10.2006, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: 1
Всего: 1



как говорится - БОЛТ
все по прежнему... smile


--------------------
PM MAIL   Вверх
3x3
Дата 1.10.2006, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 261
Регистрация: 17.9.2006

Репутация: 5
Всего: 8



Цитата(Stampede @ 1.10.2006,  03:27)
Цитата(3x3 @  30.9.2006,  17:57 Найти цитируемый пост)
Я потрясён этим обстоятельством... Сервер недопонимает в какой кодировке ему пришли данные POSTом.


Я тоже маленько потрясен. Только не сервером, а браузером. Тем, что он не сообщает, в какой кодировке он шлет данные запроса. 





Ну браузер-то шлет.. Иногда в не правильном представлении, отчего, видимо, принципиальные JAVA-программеры и игнорируют такие заголовки. Но опять же есть воркэроунд:
Вон что люди советуют, чтобы не зависеть от противного браузера: добавлять в форму поле 
Код

<input type="hidden" name="_charset_" value="" />

И туда браузер (иногда?) при посте складывать данные о кодировке POSTа. 
Можно использовать для проверки - что там себе пользователь установил, только как потом осуществить указание реквесту его кодировки, ведь она должна быть задана ДО чтения значений формы smile:


Ну и опять же ASP, PHP как-то отрабатывают такую ситуацию без выкрутасов.

Цитата

А еще JSP. Не знаю, как в других контейнерах, но у меня в Jetty выражение <%@ page contentType="text/html;charset=KOI8-R" %> не приводит к выставлению заголовков ответа HTTP!


Под Tomcat отработало правильно. Может у вас в джава-машине не установлена такая локаль?
Я бы начал с того, что попробовал бы поперекодировать строки в/из KOI8-R, если станет генерировать исключения - значит оно.

Цитата

ЗЫ. Да, и мы еще не знаем, какую роль во всем этом играет Struts, который, как выяснилось, тоже здесь фигурирует smile

Struts тут ни при чем.

Добавлено @ 11:16 
Цитата(seth @ 1.10.2006,  11:02)
как говорится - БОЛТ
все по прежнему... smile

Сейчас читает из базы нормально в UTF-8? В браузер выводит нормально в UTF-8? Заголовки сервер продолжает выдавать про UTF-8? Строку вставили в самое начало JSP?


--------------------
Зачем платить больше,
когда можно заплатить дважды?
PM   Вверх
seth
Дата 1.10.2006, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: 1
Всего: 1



Читает НЕ правильно

страничка
Код

<% if(request.getCharacterEncoding() == null) request.setCharacterEncoding("UTF-8"); %>
<%@ page import="beans.GetParamBean"%>
<%@ page import="org.apache.struts.util.PropertyMessageResources"%>
<%--
  Created by IntelliJ IDEA.
  User: seth
  Date: 15.09.2006
  Time: 13:29:42
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="html" uri="/tags/struts-html"%>
<%@ taglib prefix="bean" uri="/tags/struts-bean"%>
<html:html locale="true">
<head>
   <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8" />
 <style>
    body { background: white; color: black; }
    input { width: 120px; }
</style>
<title>Test task</title>
<link type="text/css" rel="stylesheet" href="xtree.css">
<html:base/>
<script src="xtree.js"></script>
</head>
<body bgcolor=white leftmargin=0 topmargin=0 marginheight="0" marginwidth="0" onResize="if (navigator.family == 'nn4') window.location.reload()" style="font-family:Arial">
<p>
</p>
            <span>
                <script>
            if (document.getElementById) {
             var Root = new WebFXTree('Root', "javascript:go('ViewSection.do?id=0')");
            Root.setBehavior('classic');
            vart=new Array();
            <% GetParamBean pb=new GetParamBean(request.getSession().getServletContext().getRealPath(""));
            out.println(pb.getFolder(0));
            %>
            document.write(Root);
                }
                </script>
            <noscript>
           A tree for site navigation will open here if you enable JavaScript in your browser
            </noscript>
            </span>
</body>
</html:html>


заголовки:
Response Headers - http://localhost:8080/gg/treeview.jsp

Server: Apache-Coyote/1.1
Content-Type: text/html;charset=UTF-8
Content-Length: 2297
Date: Sun, 01 Oct 2006 08:20:32 GMT

200 OK

Вывод:
Root
Õàðüêîââ
óë. Êîñìè÷åñêàÿ
äîì 12
óë. Ïåòðîâñêîãî
óë. Ñóìñêàÿ
äîì 42
äîì 43
Êèåâ
Ëüâîâ


--------------------
PM MAIL   Вверх
3x3
Дата 1.10.2006, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 261
Регистрация: 17.9.2006

Репутация: 5
Всего: 8



Цитата(seth @ 1.10.2006,  11:23)
Читает НЕ правильно

Угу.. Но ведь в самом первом посте вы писали, что с чтением в UTF-8 всё ОК. Что-то изменилось.

1. Для пущей уверенности напишите несколько русских слов прямо на страничку и сохраните её саму в UTF-8.
2. Проверьте параметры подключения к базе
3. Обрамите настройку кодировки запроса как ниже и выводите строку s где-нибудь в тексте странички:
Код

<% String s;
   if(request.getCharacterEncoding() == null){ 
      request.setCharacterEncoding("UTF-8"); 
      s="changed to UTF-8";
   }else{
      s="unchanged, was " + request.getCharacterEncoding();
   }
%>

4. Если запрос сначала обрабатывается сервлетом, а потом передаётся страничке, то кодировку запроса нужно настраивать в нём - она должна быть установлена до самого первого обращения к полям запроса.

0. И в любом случае - сперва верните нормальный вывод UTF-8. Возможно строку "<%@ page contentType="text/html; charset=UTF-8" language="java" %>" нужно тоже подвинуть поближе к началу..


--------------------
Зачем платить больше,
когда можно заплатить дважды?
PM   Вверх
seth
Дата 1.10.2006, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: 1
Всего: 1



вот такое
Код

unchanged, was utf-8 


блин я ведь писал как все работает....

есть jsp страничка (исходник уже приводил)
из которой вызывается метод моего бина (который возвращает форматированные данные) и в этом бине идет подключение к БД

параметры подключения 

url:
jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=utf-8
table:
treet
user:
root
password:
1
Connector-class:
org.gjt.mm.mysql.Driver

какую еще инфу надо (только не ту что я уже писал ;) )


--------------------
PM MAIL   Вверх
<Spawn>
Дата 1.10.2006, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: нет
Всего: 64



Попробуй настроить автоматическую перекодировку - перед началом работы с MySQL выполни запрос (В случае клиентской кодировки utf-8)

Код

SET NAMES 'utf8'


Подробная информация тут


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
seth
Дата 1.10.2006, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: 1
Всего: 1



Цитата(<Spawn> @ 1.10.2006,  12:10)
Попробуй настроить автоматическую перекодировку - перед началом работы с MySQL выполни запрос (В случае клиентской кодировки utf-8)

Код

SET NAMES 'utf8'


Подробная информация тут

Код

 Class.forName(class_name);
            con=DriverManager.getConnection(url, user, password);
            Statement st=con.createStatement();
            st.executeUpdate("SET NAMES 'utf8'");
            rs=st.executeQuery("select * from "+table_name+" where parentId="+id+" AND isParam='N'");
            formatted=formatChildrenJS(rs);
            rs.close();
            st.close();

сделал так - результат нулевой (т.е. ничего не изменилось smile )

Добавлено @ 12:19 
в базе выставлено:
Character Set: utf8
Collation: utf8_general_ci

Это сообщение отредактировал(а) seth - 1.10.2006, 12:18


--------------------
PM MAIL   Вверх
<Spawn>
Дата 1.10.2006, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: нет
Всего: 64



Цитата(seth @ 1.10.2006,  14:17)
Цитата(<Spawn> @ 1.10.2006,  12:10)
Попробуй настроить автоматическую перекодировку - перед началом работы с MySQL выполни запрос (В случае клиентской кодировки utf-8)

Код

SET NAMES 'utf8'


Подробная информация тут

Код

 Class.forName(class_name);
            con=DriverManager.getConnection(url, user, password);
            Statement st=con.createStatement();
            st.executeUpdate("SET NAMES 'utf8'");
            rs=st.executeQuery("select * from "+table_name+" where parentId="+id+" AND isParam='N'");
            formatted=formatChildrenJS(rs);
            rs.close();
            st.close();

сделал так - результат нулевой (т.е. ничего не изменилось smile )

Добавлено @ 12:19 
в базе выставлено:
Character Set: utf8
Collation: utf8_general_ci

А клиент в этом случае 1251? Тогда нужно 

Код

SET NAMES 'cp1251'


И мне думается что тут нужен не executeUpdate, а обычный execute();

П.С. У меня есть сервер на MySQL с кодировкой utf8, клиент работает в 1251 - все отлично перекодируется вышеприведенной конструкцией (правда код написан на ПХП, но сути это не меняет)


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
seth
Дата 1.10.2006, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: 1
Всего: 1



Я приводил выше JSP на который это все выводится - везде прописано UTF-8 при set names cp1251 естественно выводятся вопросики...


--------------------
PM MAIL   Вверх
3x3
Дата 1.10.2006, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 261
Регистрация: 17.9.2006

Репутация: 5
Всего: 8



Цитата(seth @ 1.10.2006,  12:03)

какую еще инфу надо (только не ту что я уже писал ;) )

Статический русский текст со странички в кодировке UTF-8 отображается правильно?

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



Добавлено @ 13:49 
Цитата(<Spawn> @ 1.10.2006,  12:10)
Попробуй настроить автоматическую перекодировку - перед началом работы с MySQL выполни запрос (В случае клиентской кодировки utf-8)

Код

SET NAMES 'utf8'


Подробная информация тут

Тогда уж 
Код

SET CHARACTER SET charset_name


Но не думается, что в этом дело.

Это сообщение отредактировал(а) 3x3 - 1.10.2006, 13:50


--------------------
Зачем платить больше,
когда можно заплатить дважды?
PM   Вверх
tux
Дата 1.10.2006, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Уфффф...  seth, давай окончательно разберемся с тем, что выдает MySQL в приложение. Если вот такие строки ты видишь в отладчике, то это неправильно: óë. Ïåòðîâñêîãî. Смотри как выглядит процесс. СУБД (пусть будет MySQL) хранит данные в какой-то кодировке (windows-1251, utf8 или еще чем-то). Java работает только с Unicode, то есть для того, чтобы в Java твои строки из БД выглядели правильно надо их перекодировать из кодировки, в которой они хранятся в БД и уникод. То есть если все нормально, должно все корректно перекодироваться и отобразиться в виде русских букв. Давай разберем случаи когда этого может не произойти. 

Первый вариант. Строки в базе изначально некоректные. Возможно они нормально отображаются в родных клиентах MySQL, возможно они даже нормально отображаются в клиентах, написанных на PHP, но хранятся некорректно. Вот смотри когда это может произойти. Установили для БД кодировку windows-1251, занесли какие-то данные, сделали дамп базы, потом преобразовали базу в utf8, залили дамп в базу, все русские буквы превратились в умляуты. Но коды этих умляутов соответствуют кодам русских букв, например, в windows-1251. Это я все говорю достаточно абстрактно, может все было и не так. Вообще в большинстве СУБД такой фокус не прокатил бы без видимых последствий, но MySQL есть MySQL. 

Второй вариант. Драйвер MySQL, который у тебя используется (org.gjt.mm.mysql.Driver), устарел лет надцать назад. Вполне вероятно, что он не поддерживает перекодировку для нужных тебе кодировок. Хотя в принципе в текущих драйверах это синоним актуального драйвера и возможно что более-менее свежий и используется.

Теперь о том, что я предлагаю сделать. Возьми свежий драйвер JDBC и напиши махонькое приложение, которое будет выполнять один селект из той таблицы, из которой у тебя и вываливаются все эти кракозябры и запиши их в файл в виндовой кодировке (насколько я понимаю в виндовой консоли ты опять-таки увидишь кракозябры, хотя может и нет, уж не помню). Потом посмотри этот файлик, есди там все в порядке, то причина как минимум не в том, как данные хранятся в базе. Потом попробуй подставить тот драйвер, который ты сейчас используешь. Возможно причина в нем. Ну и если все нормально, то остается разбираться с вебом, хотя тебе здесь столько написали, что не думаю что есть варианты причин, по которых что-то может работать некорректно.

Это сообщение отредактировал(а) tux - 1.10.2006, 17:00
PM MAIL Skype GTalk Jabber YIM   Вверх
seth
Дата 1.10.2006, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 316
Регистрация: 4.6.2006

Репутация: 1
Всего: 1



У меня первый вариант.... наконецто добрались до истины - спасибо всем
Если что еще не будет получатся я отпишусь ;)


--------------------
PM MAIL   Вверх
A_titov82
Дата 9.3.2007, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.3.2007

Репутация: нет
Всего: нет



Здраствуйте. Столкнулся с похожей проблемой. База в utf-8, русский текст нормально сохраняется, если его ввести из клиента mysql. А текст, введённый из веб-приложения, сохраняется в виде кракозябр... Страница тоже в кодировке utf-8. Текст, введённый из mysql-клиента, также нормально показывается на странице. Если программно сохранить текст, забитый прямо в коде, то потом всё корректно отображается. Если перед сохранением вывести сохраняемый текст на консоль, то он уже неправильно отображается. То есть "портиться" он где-то в процессе работы web-приложения (я использую struts). Либо просто неправильно считывается из формы ввода. Куда копать, подскажите...
PM MAIL   Вверх
A_titov82
Дата 9.3.2007, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 9.3.2007

Репутация: нет
Всего: нет



проблема была решена при помощи создания фильтра 
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1773 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.