С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/55: Рейтинг темы: голосов - 55, средняя оценка - 4.55
Eugeny

Русские буквы в сервлете не выводятся

09.04.2008, 12:38. Показов 11024. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь выводить русские буквы в сервлете
out.println('Привет'); - получаю ?????.

Вывожу так:
Java
1
2
3
response.setContentType('text/html;charset=Windows-1251');
String src='Привет';
out.println(new String(src.getBytes('ISO-8859-1'),'Cp1251' ));
получаю java.io.UnsupportedEncodingException: Cp1251

Что делать?
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.04.2008, 12:38
Ответы с готовыми решениями:

Русские буквы выводятся как ? в браузере
Здравствуйте! Пишу веб-приложение на Java, используя MVC. в jsp страницах пишу русские слова, например: <h3>Авторизация</h3> ,...

Русские буквы не выводятся
Есть программа по Шифру Атбаш. Если строку и алфавит вставить на английском языке то программа работает правильно и без проблем но если...

Не выводятся русские буквы
#include <iostream> using namespace std; int mul (int x, int y); // прототип функции mul() int main() ...

9
0 / 0 / 2
Регистрация: 17.08.2007
Сообщений: 222
10.04.2008, 13:01
1.Cp1251 - не есть основная кодировка, это (а точнее x-Cp1251) дополнительное обозначение для кодировки windows-1251
2.Если ты пишешь свой сервлет не в notepad, а ипользуя ide, то само ide может произвольным образом кодировать русские буквы.
3. а вообще напиши так:
Java
1
2
3
response.setContentType('text/html;Windows-1251');
String src='Привет';
out.println('Привет');
0
1 / 1 / 5
Регистрация: 22.07.2007
Сообщений: 366
10.04.2008, 13:12
Не поленись посмотреть предудыщие темы, этот вопрос уже поднимался несколько раз.
0
1 / 1 / 5
Регистрация: 22.07.2007
Сообщений: 366
10.04.2008, 13:40
Ладно напишу ещё раз
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  public void doPost (HttpServletRequest req, HttpServletResponse res)
        String srcPage = req.getCharacterEncoding();
 
        srcPage = req.getCharacterEncoding();
        dstPage = req.getParameter('charset');
 
        // Избегая проблем перестрахуемся задав вариант по умолчанию
        if( srcPage==null ) srcPage='ISO-8859-1';
        if( dstPage==null ) dstPage='Cp1251';
далле для каждой передаваемой строки вызывай функцию encode
 
 //Encode String beetwin different code pages
 static public String encode(String src, String defpage ,String codepage)
 {
  String answer='';
     try
     {answer= new String(src.getBytes(defpage), codepage);}
     catch (Exception e){answer=src;}
  return answer;
 }
0
Eugeny
10.04.2008, 14:01
Сервлет пишу в JBuilder5. Сервер стоит TomCat 3.2 под IIS.
В notepad русские буквы в файлах java читаются нормально.

TO simplepilot:
Если запустить твой код возникает IOException в encode.

Кстати возникла похожая проблема: если писать русские буквы в базу через JdbcOdbc результат Exception Can't convert character set.
Eugeny
10.04.2008, 14:02
Сервлет пишу в JBuilder5. Сервер стоит TomCat 3.2 под IIS.
В notepad русские буквы в файлах java читаются нормально.

TO simplepilot:
Если запустить твой код возникает IOException в encode.

Кстати возникла похожая проблема: если писать русские буквы в базу через JdbcOdbc результат Exception Can't convert character set.
1 / 1 / 5
Регистрация: 22.07.2007
Сообщений: 366
10.04.2008, 15:07
Нет времени особенно разбираться. Но странная ошибка так для 'плохой' кодовой таблицы существует специальная ошибка InvalidCodeTable или что то вроде того. Поробуй использовать функию encode с обычной строкой и с теми значениями которые я тебе написал по умолчанию Cp1251 и ISO-...
0
0 / 0 / 2
Регистрация: 17.08.2007
Сообщений: 222
13.04.2008, 13:22
Зачем заниматься перекодированием, если, при правиьном конфигурировании и использовании только одного языка (в данном случае русского) все работает без всяких перекодировок
Java
1
2
3
4
5
6
7
public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType('text/html;charset=windows-1251');
    PrintWriter out = response.getWriter();
    out.println('привет\n');
  }
Дополнительное перекодирование нужно, если работа ведется еще и с базой данных, причем данные - русскоязычные!
0
1 / 1 / 5
Регистрация: 22.07.2007
Сообщений: 366
13.04.2008, 16:17
И что входные параметры на русском языке тоже не надо перекодировать ?
0
0 / 0 / 2
Регистрация: 17.08.2007
Сообщений: 222
13.04.2008, 17:52
Насколько я понял у человека задача вывести слово 'Привет'. Для этого никаких перекодировок не надо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.04.2008, 17:52
Помогаю со студенческими работами здесь

Не выводятся русские буквы
как с этим бороться например: char v='ф'; Form1->Label2->Caption=v;выводит всякие символы пользуюсь embarcadero rad studio c++...

Не выводятся русские буквы
Подскажите пожалуйста что добавить в программу написанную на visual studio 2008 #include "stdafx.h" main() { ...

Не выводятся русские буквы
Доброго всем здравия, духовного и телесного. Программа работает как надо, но буквы кириллицы не выводятся. using System; using...

Не выводятся русские буквы
написал код в viual studio 2008 и не как не могу разобраться почему не выводит русские буквы #include <stdio.h> #include...

Некорректно выводятся русские буквы
В файле кода есть следующая строка: WScript.Echo("Параметр "+Root+ValueName+"записан!"); Но при запуске вместо русских букв выводится...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru