Jump to content
Модераторы форума - Assembler & Bercana
  • Откройте аккаунт на Диспуте за 5 минут

    Продаете недвижимость, машину, телефон, одежду?  Тысячи  просмотров ежедневно на dispute.az  помогут вам. Бесплатная доска обьявлений.

Кодировка В Jsp, Help


dll

Recommended Posts

Добрый день, добрые кодеры. нужна помощь, долго программирую на Java SE, но программировал на маке, по работе пришлось временно перейти на JSP и Java EE6, но когда создается файл *.jsp, то выходят проблемы с русским шрифтом. расскажу процесс. надо настроить локализацию через fmt:setLocale который берет английские слова из labels_en.properties и русские из labels_ru.properties.

IDE: Eclipse for Java EE developers for Windows x86

OS: Windows 7 Ru, x86

кодировка по умолчанию в эклипсе CP-1251

файлы по умолчанию создает на ISO-8859-1, поэтому файл lables_ru.properties вынужденно перевел в UTF-8, иначе русские буквы не выходили

при создании файлы *.jsp внутри кодировка следующая

xml version="1.0" encoding="ISO-8859-1"

page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"

meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"

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

Link to comment
Share on other sites

Установите во всех файлах utf-8. Убедитесь, в том, что редактор действительно сохраняет файлы в utf-8. Судя по всему, он вам постоянно пытается навязать ISO-8859-1, посмотрите его настройки, наверняка где-то будет.

Link to comment
Share on other sites

Установите во всех файлах utf-8. Убедитесь, в том, что редактор действительно сохраняет файлы в utf-8. Судя по всему, он вам постоянно пытается навязать ISO-8859-1, посмотрите его настройки, наверняка где-то будет.

вот именно, поменял по умолчанию создание файлов, чтоб файлы JSP и properties создавались на UTF-8, сделал вот тут:

Preferences->General->Content Type->Java Properties File-> *.properties установил в UTF-8

Preferences->General->Content Type->JSP-> *.jsp установил в UTF-8

Preferences->General->Content Type->JSP->JSP Tag Definition - все файлы в UTF-8

Preferences->Web->JSP Files->ISO10646/Unicode(UTF-8)

вроде бы везде все поменял и в декларациях ставлю UTF-8, но ни в какую. намертво каракули выходит, но если сам ручным способом меняю кодировку браузера на UTF-8, то сразу все показывает. никак не могу понять. кстати Eclipse версии 3.7 Indigo

Link to comment
Share on other sites

Возможно веб-сервак ставит Content-Type: text/html; charset=ISO-8859-1 и это переопределяет кодировку файлов для вашего браузера. Посмотрите в браузере какие заголовки приходят.

Link to comment
Share on other sites

Возможно веб-сервак ставит Content-Type: text/html; charset=ISO-8859-1 и это переопределяет кодировку файлов для вашего браузера. Посмотрите в браузере какие заголовки приходят.

в смысле заголовки? у меня томкат стоит, там тоже поменял на ютф-8, дело в том, что когда пишу в сам файл JSP то русский шрифт нормально выходит, но вот то, что он должен читать из lables_ru.properties он выводит как каракули. и да, кое что заметил только что, когда перевожу кодировку lables_ru.properties в ISO-8859-1, то там когда пытаюсь писать на русском языке, вместо букв выходят шестнадцатеричные кода этих русских букв(например слово ПРИВЕТ как \u043F\u0440\u0438\u0432\u0435\u0442) и тогда в браузере все нормально показывается. как же все сложно с этими кодировками(((((

Link to comment
Share on other sites

это я для опыта перевожу. вот например если labels_ru.properties перевести в ISO, то русский шрифт в нем показывается в виде шестнадцатеричной системы, зато в браузере нормально отбражается, а если перевести в UTF-8, то в файле русский шрифт нормально показывает, а зато в браузере нет. проблема только в properties файлах, в JSP все стоит на UTF-8 и все отлично пашет

Link to comment
Share on other sites

короче после долгих поисков понял, что файлы настроек в Java поддерживает правильно только ISO-8859-1 и если надо писать русским шрифтом, то он сам конвертит их в escape-последовательности((( придется привыкать

Link to comment
Share on other sites

в смысле заголовки?

HTTP заголовки. Если у вас Firefox, поставьте расширение Live HTTP Headers, далее откройте вашу страницу, right click -> View page info -> Headers. Смотрите значение Response header Content-Type.

ISO-8859-1, то там когда пытаюсь писать на русском языке, вместо букв выходят шестнадцатеричные кода этих русских букв(например слово ПРИВЕТ как \u043F\u0440\u0438\u0432\u0435\u0442) и тогда в браузере все нормально показывается

Да, но во view source их же и увидите :) Это просто Юникод используя только ASCII символы, для HTML браузера. 4 байта на символ! Грабеж.

Link to comment
Share on other sites

4 байта на символ! Грабеж.

6 байтов :) \u забыл. Чтобы было понятней, utf-8 - это как цены на товары за бугром, a \uxxxx - это они же с бакинской наценкой :)

Link to comment
Share on other sites

короче после долгих поисков понял, что файлы настроек в Java поддерживает правильно только ISO-8859-1 и если надо писать русским шрифтом, то он сам конвертит их в escape-последовательности((( придется привыкать

проверьте кодировку файлов еще раз.

должно быть utf-8, не unicode или что-то иное.

у меня тоже когда-то была абсолютно идентичная проблема.

Link to comment
Share on other sites

нет, все это я понял про кодировки и все такое)) как никак не первый год программирую)) но что касается кодировки properties файлов, то их можно писать только в ISO-8859-1, в документации Java прочитал, так что приходится писать в текстовый редактор что я хочу и потом копировать в properties

Link to comment
Share on other sites

дело в том, что я это должен делать в Eclipse, потому что на работе у нас Team разработка именно на нем идет. да если честно, то и NetBeans не так нравится.

Link to comment
Share on other sites

dll, вы проверили заголовки? Если у вас получается переключать в браузере кодировку на utf-8 и все показывает - значит в ней и приходит. Просто кодировка в HTTP хедере неверная стоит. Ставлю 2 плюса :)

Link to comment
Share on other sites

дело в том, что я это должен делать в Eclipse, потому что на работе у нас Team разработка именно на нем идет. да если честно, то и NetBeans не так нравится.

нетбинс удобен в том что он готов к разработке jsp сразу после установки, с ним приходит и glassfish web server и java db, т.е. можно непосредственно запускать и смотреть результат

вообще-то вы должны по идее знать какого лешего у вас в Тeam разработка идет на чем-то а не на чем-нибудь другом, если уж сами не знаете (втф) то спросите хотя бы того кто там главный у вас

Link to comment
Share on other sites

dll, вы проверили заголовки? Если у вас получается переключать в браузере кодировку на utf-8 и все показывает - значит в ней и приходит. Просто кодировка в HTTP хедере неверная стоит. Ставлю 2 плюса smile.png

в том то и дело что в properties header нельзя прописывать

Link to comment
Share on other sites

нетбинс удобен в том что он готов к разработке jsp сразу после установки, с ним приходит и glassfish web server и java db, т.е. можно непосредственно запускать и смотреть результат

вообще-то вы должны по идее знать какого лешего у вас в Тeam разработка идет на чем-то а не на чем-нибудь другом, если уж сами не знаете (втф) то спросите хотя бы того кто там главный у вас

но зато по моему мнению NetBeans и тормозит немеренно, как никак он создан на Swing, а Eclipse на SWt. на Eclipse очень легко все настраивается и с этим проблем нет, тем более я то же самое по совету DieSlogan попробовал на Netbeans, результат одинаковый, так тоже файлы properties можно писать только в ISO-8859-1.

Ну я вообще то и сказал, что у нас разработка идет на Eclipse и самое главное проект большой и давно написан на Eclipse и перенести на другую IDE не представляется возможным. GlassFish & Java DB мне не нужны, у нас сервер на JBoss и база на Oracle, а для себя если надо то использую Мускул и Glass, ИМХО на эклипсе он очень легко устанавливается

Link to comment
Share on other sites

Я не джавист (и не Джавид smile.png) но лет 7-8 назад очень впечатлила своим качеством IntelliJ IDEA. Правда платная.

как раз таки IDEA 7-8 лет назад не пользовался таким спросом, потому что глючил страшно, но вы правы, он платный и если есть такие решения как NetBeans, Eclipse, JDeveloper на бесплатной основе, думаю глупо за него платить

Link to comment
Share on other sites

кто нибудь разбирается в Ext-GWT? у меня проблема появилась с onRender, выставляю код, может я что то не так пишу, хотя вроде все правильно должно быть:


import com.extjs.gxt.ui.client.Style.LayoutRegion;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.util.Margins;
import com.extjs.gxt.ui.client.widget.Popup;
import com.extjs.gxt.ui.client.widget.Text;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.extjs.gxt.ui.client.widget.layout.BorderLayout;
import com.extjs.gxt.ui.client.widget.layout.BorderLayoutData;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.Window;
public class LinkFeedPopup extends Popup
{
public LinkFeedPopup()
{
setSize(300, 55);
setBorders(true);
setShadow(true);
setAutoHeight(false);

final TextField<String> urlField = new TextField<String>();

@Override
protected void onRender(Element parent, int index) {
super.onRender(parent, index);
final Text explainationText = new Text("Enter a feed URL");
final Button addButton = new Button("Add");
addButton.addSelectionListener(new SelectionListener<ButtonEvent>() {

@Override
public void componentSelected(ButtonEvent ce) {
addFeed(urlField.getValue());
}
private void addFeed(String url) {
Window.alert("The " + url + " would be sent for the respond on server!");
}
});

final BorderLayout layout = new BorderLayout();
setLayout(layout);

final BorderLayoutData textData = new BorderLayoutData(LayoutRegion.NORTH, 20);
textData.setMargins(new Margins(2));
final BorderLayoutData fieldData = new BorderLayoutData(LayoutRegion.SOUTH);
fieldData.setMargins(new Margins(2));
final BorderLayoutData buttonData = new BorderLayoutData(LayoutRegion.EAST, 50);
buttonData.setMargins(new Margins(2));

add(explainationText, textData);
add(urlField, fieldData);
add(addButton, buttonData);

}

}
}

Link to comment
Share on other sites

в том то и дело что в properties header нельзя прописывать

Вы сказали у вас Томкат. Здесь написано как убедиться что веб сервером в хедер Content-Type пишется charset=utf-8. Тогда ваш браузер перестанет путаться.

Link to comment
Share on other sites

спасибо мой друг, но при настройке томката этот процесс является одним из первых, поэтому в томкате UTF-8 настроен у меня давно. он действует на файлы html, jsp, jsf но файлы пропертиес принадлежат именно Java API и томкат никак не может их поменять, потому что в Java API они прописаны под другой кодировкой

Link to comment
Share on other sites

Я что-то

но файлы пропертиес принадлежат именно Java API и томкат никак не может их поменять

Я что-то запутался. Вы же сказали, что поменяв вручную кодировку в браузере на utf-8, русский нормально отображается? Значит текст изначально закодирован в utf-8. Браузер ничего не перекодирует. Вобщем, трудно не видя гадать в чем проблема, если вас устраивает воркараунд с &0xxx; - то вперед :)

Link to comment
Share on other sites

неа, щас все объясню)))) изначально файл *.properties был в кодировке ISO-8859-1 и когда я внутри что то писал кирилицей, то он автоматов буквы переводил в 16-ричные коды (u0040) и типо того. но при этом в браузере эти коды снова автоматом конвертировались и показывались как есть. но в данной случае как вы сами понимаете, писать так что то в файл не очень удобно, очень легко сделать ошибку. и я решил перевести дефолтную кодировку в ЮТФ, и кириллицей когда стал писать в них что то, то нормально как есть показывались, но вот в браузере стали появляться надписи майя. вопросики и всякая фигня. поэтому остается оставить кодировку в ISO-8859-1, все что надо писать на русском в какой нить блокнот и конечный результат скопировать просто в файлы пропертиес

Link to comment
Share on other sites

неа, щас все объясню)))) изначально файл *.properties был в кодировке ISO-8859-1 и когда я внутри что то писал кирилицей, то он автоматов буквы переводил в 16-ричные коды (u0040) и типо того. но при этом в браузере эти коды снова автоматом конвертировались и показывались как есть.

Браузер ничего не конвертирует. Ему открытым текстом указывался Юникод этого символа, который ваш редактор любезно вписал в *.properties файл. Браузер знает, что вместо текста "\u043F" следует показать русскую букву "П" и т.д. Это работает одинаково на какую бы кодировку не был настроен браузер.

и я решил перевести дефолтную кодировку в ЮТФ, и кириллицей когда стал писать в них что то, то нормально как есть показывались, но вот в браузере стали появляться надписи майя. вопросики и всякая фигня

Внимания стоит только один момент: при ручной установке кодировки браузера в utf-8 русский нормально показывается?

Ответ может быть только да (ведь вы видите этот текст в *.properties и знаете что он utf-8), и это значит, что браузеру от Томката приходит хедер Content-Type: ...; charset=не-utf-8 поэтому он не показывает UTF-8 текст корректно.

Link to comment
Share on other sites

Ответ может быть только да (ведь вы видите этот текст в *.properties и знаете что он utf-8), и это значит, что браузеру от Томката приходит хедер Content-Type: ...; charset=не-utf-8 поэтому он не показывает UTF-8 текст корректно.

вот именно, все страницы с расширением веб документов (html, jsf, jsp и т.д.) передается в томкат, а файл пропертиес не читается в томкате, а прямиком API Java. поэтому томкат и не обрабатывает его нормально.

Link to comment
Share on other sites

но зато по моему мнению NetBeans и тормозит немеренно, как никак он создан на Swing, а Eclipse на SWt. на Eclipse очень легко все настраивается и с этим проблем нет, тем более я то же самое по совету DieSlogan попробовал на Netbeans, результат одинаковый, так тоже файлы properties можно писать только в ISO-8859-1.

Ну я вообще то и сказал, что у нас разработка идет на Eclipse и самое главное проект большой и давно написан на Eclipse и перенести на другую IDE не представляется возможным. GlassFish & Java DB мне не нужны, у нас сервер на JBoss и база на Oracle, а для себя если надо то использую Мускул и Glass, ИМХО на эклипсе он очень легко устанавливается

У меня, если открыть файл properties в обычном редакторе, то он будет в ASCII, а русские буквы будут в \u символах. Кстати, какая у вас системная локаль? У меня стоит Русский, Россия.

Link to comment
Share on other sites

У меня, если открыть файл properties в обычном редакторе, то он будет в ASCII, а русские буквы будут в \u символах. Кстати, какая у вас системная локаль? У меня стоит Русский, Россия.

вот у меня тоже русская и такое. может из за локали так происходит? как думаете?надо будет проверить на англ версии

Link to comment
Share on other sites

Народ, кто нибудь разбирается в gwt/jpa? А именно делать выборку из mysql посредством jpql? Значит цель какова, имеется окошко входа юзера с пррверкой логина и пароля. Надо проверить соответствие с данными в базе посредством rpc вызова. Использую beans pojo, dto файл как связка и service asynccall с implement. Кто нибудь делал подобное? Написал не так подробно, потому что с ipod пишу. Завтра выложу код, который не выдает ошибок при компиляции. Но во время работы java.lang.object не может перевести в объект beans

Link to comment
Share on other sites

вот у меня тоже русская и такое. может из за локали так происходит? как думаете?надо будет проверить на англ версии

Возможно. А может попробуете на другой машинке проверить?

Народ, кто нибудь разбирается в gwt/jpa? А именно делать выборку из mysql посредством jpql? Значит цель какова, имеется окошко входа юзера с пррверкой логина и пароля. Надо проверить соответствие с данными в базе посредством rpc вызова. Использую beans pojo, dto файл как связка и service asynccall с implement. Кто нибудь делал подобное? Написал не так подробно, потому что с ipod пишу. Завтра выложу код, который не выдает ошибок при компиляции. Но во время работы java.lang.object не может перевести в объект beans

Не работал, но выложите код, может совместными усилиями решим.

Link to comment
Share on other sites

насчет gwt разобрался, насчет кодировки проверил и на маке (рус/англ) и на винде(рус/англ), одна фигня. я написал письмо с этой проблемой и в oracle и в eclipse. будем ждать ответа, если конечно ответ последует

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Our picks

    • В Баку начинается строительство новой дороги
      С учетом перспективного развития города Баку Государственным агентством автомобильных дорог Азербайджана дается старт строительству новой автомобильной дороги от улицы Гасана Алиева до станции метро «Кероглу», параллельно проспекту Зии Буниядова.
      Об этом сообщили в госагентстве.
      Общая длина шестиполосной дороги составит 3896 метров с шириной полос 3,5 метра. На дороге будут построены четыре тоннеля и три подземных пешеходных перехода.
      В настоящее время от метро «Улдуз» в направлении улицы Алескера Гаибова ведутся работы по транспортировке тяжелой техники и оборудования на территорию.
      https://media.az/society/v-baku-nachinaetsya-stroitelstvo-novoj-dorogi
        • Upvote
        • Like
      • 30 replies
    • В Баку выставлена на продажу квартира по фантастической цене - ФОТО
      В Баку выставлена на продажу квартира по фантастической цене.
      Как сообщает Oxu.Az, соответствующая информация распространена на сайтах объявлений.
      Так, девятикомнатную квартиру площадью 555 кв.м предлагают покупателям за 12 млн манатов.
        В объявлении упоминается, что на указанном этаже расположена только одна квартира и соседей не будет.
      https://ru.oxu.az/society/866997
        • Confused
        • Haha
      • 96 replies
    • Где выгоднее отдыхать: в Азербайджане или за рубежом? - ОПРОС
      Baku TV провел опрос среди жителей столицы с целью узнать, где, по их мнению, выгодно отдыхать: в Азербайджане или за рубежом.
      Большинство участников опроса предпочло потратить деньги на отдых за границей.
      «Проживание в наших гостиницах обойдется в три раза дороже», - сказал один из опрошенных.
      Между тем сотрудники туристических компаний также отметили, что цены на отели за границей практически такие же, как у нас, а в некоторых случаях даже ниже.
      «Например, стоимость недельного тура на одного человека в Габалу начинается от 700 манатов. А тур на тот же период в Грузию обойдется от 500 манатов», - сказал один из них.
       
        • Haha
        • Like
      • 129 replies
    • Отомстил отцу за избиение матери: жуткие подробности убийства брата главы ИВ Лянкярана

      Долгое время подробности этого жуткого происшествия не разглашались ни во время следствия, ни в ходе судебного процесса. Судьи решили, что слушания должны проходить в закрытом режиме, без допуска СМИ.
      Однако Qafqazinfo удалось выяснить некоторые детали этой семейной трагедии. Согласно материала
        • Sad
      • 35 replies
    • Депутат: Некоторых женщин убивают за то, что они не считают мужей главой семьи
      В последнее время в Азербайджане растет число женщин, убитых своими мужьями.
      По данным расследования Bizim.Media, за последние два месяца Генеральная прокуратура зарегистрировала около 10 фактов убийства женщин их супругами. Эта печальная статистика актуализирует вопрос о необходимости прохождения парами психологического анализа перед вступлением в брак.
      Между тем заместитель председателя комитета по правам человека Милли Меджлиса Таир Керимли в своем заявлении Bizim.Media отметил, что не испытывает оптимизма относительно идеи обязательного психологического анализа для пар перед свадьбой.
      «Прохождение медицинского осмотра перед браком обязательно, поскольку только так можно выявить скрытые заболевания. Но психологический анализ в Азербайджане не применяется, да и за рубежом такой широкой практики нет, и то лишь в добровольном порядке», - отметил депутат.
      Что касается женщин, убитых мужьями, Таир Керимли полагает, что это происходит из-за вопросов чести.
      «Одна из главных причин заключается в том, что некоторые дамы, прикрываясь гендерным равенством, создают образ сильной женщины и не считают мужей главой семьи, а некоторые и вовсе идут по плохому пути. То есть зачастую убийства женщин происходят из-за вопросов чести», - сказал он.
      Депутат призвал стремиться к построению чистого общества, чтобы никому даже в голову не приходило сворачивать на плохой путь.
      «В советское время тоже были случаи убийства женщин мужьями на почве ревности. В любом случае я не поддерживаю идею применения психологического анализа перед браком на законодательном уровне. Это будет своего рода унижением для пары: как будто мы проверяем, в своем ли они уме», - заключил Т.Керимли.
      https://media.az/society/deputat-nekotoryh-zhenshin-ubivayut-za-to-chto-oni-ne-schitayut-muzhej-glavoj-semi
        • Facepalm
        • Confused
      • 54 replies
    • В районе метро Гара Гараева продаётся объект под новостройкой
      В Низаминском районе,около станции метро Г.Гараева, под новостройкой на 1-м этаже (18/1) продается объект общей площадью 65 кв.м. Очень интенсивный пешеходный и автомобильный трафик. Имеются все условия, развитая инфраструктура, паркинг и т.д. Все документы в порядке, купчая на нежилое помещение.Оплата 1%.   Цена 550000  манат     0552522225
      • 0 replies
    • Можно ли использовать пенсионные накопления до выхода на пенсию?
      Пенсионный возраст в Азербайджане является предметом многочисленных дискуссий.
      Для мужчин он составляет 65 лет, для женщин – 63,5 года. Возрастной предел для женщин увеличивается на шесть месяцев каждый год, начиная с 1 июля 2017 года. В 2027-м возраст выхода на пенсию для мужчин и женщин будет одинаковым - 65 лет.
      Как долго гражданин может прожить после выхода на пенсию - никто не знает. Таким образом, накопленный за годы работы пенсионный капитал можно будет получать в лучшем случае 10-15 лет.
      Почему мы не можем использовать накопления раньше, чем выйдем на пенсию? Обязательно ли нам ждать 65 лет, чтобы воспользоваться своим правом?
      Подробнее об этом - в сюжете İTV:
      https://media.az/society/mozhno-li-ispolzovat-pensionnye-nakopleniya-do-vyhoda-na-pensiyu
        • Like
      • 54 replies
    • AstraZeneca признала, что ее вакцина от COVID-19 может спровоцировать тромбоз
      Компания AstraZeneca признала, что ее вакцина против COVID-19 может вызвать редкое, но смертельное нарушение свертываемости крови.
      Фармацевтический гигант уже столкнулся с огромным количеством исков, поданных близкими тех, кто получил серьезные заболевания или умер в результате инъекции, сообщает Daily Mail.
      Отмечается, что юристы, представляющие десятки коллективных исков, говорят, что стоимость некоторых дел их клиентов может достигать 25 миллионов долларов (42,5 млн манатов), и настаивают на том, что вакцина фармацевтической фирмы является дефектным продуктом.
        Подчеркивается, что AstraZeneca в феврале признала, что ее вакцина может в очень редких случаях провоцировать состояние, называемое тромбозом с синдромом тромбоцитопении или TTS. Он может вызвать у пациентов образование тромбов, а также низкое количество тромбоцитов, что в некоторых случаях серьезно навредило тем, кто воспользовался вакциной, или даже привело к летальному исходу.
      Потенциальное осложнение было указано в качестве возможного побочного эффекта с момента выпуска вакцины, но признание AstraZeneca в феврале стало первым случаем, когда фармацевтический гигант сделал это в суде, сообщает Telegraph.
       
        • Facepalm
        • Confused
      • 452 replies
  • Recently Browsing   0 members, 0 guests

    • No registered users viewing this page.
×
×
  • Create New...