powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Кодировка.
25 сообщений из 25, страница 1 из 1
Кодировка.
    #32225972
JDim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Подскажите как решить проблему с передачей в сервлет данных из html страницы содержащие руские буковки.
Я сделал, но на мой взгляд коряво. На клиентской стороне перед отправкой я из строки сделал массив аски кодов и уже его отправляю. На серверной стороне из строки типа "код,код,код" собираю сообшение от юзера. Но это ведь коряво! И меня ломает от такого решения.
Спасибо всем кто ответит и поймет мою страсть к красивым кодам ;)
JDim.
...
Рейтинг: 0 / 0
Кодировка.
    #32225987
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда, была такая проблема, помню. В общем лучше не кодировать на клиенте, а принимать каракули на сервере и раскодировать. Есть такая функция у String - getBytes(codeset x). Чтобы перекодировать в нужную кодировку - передаешь конструктору String строку в старой кодировке, затем указываешь новую:
String newStr=new String(recievedStr.getBytes("ISO-8859-1"),"Cp1251");
Красивее решения найти в своё время не смог. Если найдешь сам - кинь в форум поглядим.
...
Рейтинг: 0 / 0
Кодировка.
    #32225996
JDim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
Рулёзную штуку подсказал!
А я как ... туды-сюды коды кидал.
Да, все гениальное просто! И красиво!
Спасибо, вопрос снят.
...
Рейтинг: 0 / 0
Кодировка.
    #32226091
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раньше в апаче была такая конфига. В ней можно было указывать кодпейдж и нафиг никаких перекодировок делать не нужно было. В "кошке" доков под конфиг у меня не было, поэтому пришлось вот так вот вывернуться. Так вот: если что знаешь по "кошкиным конфигам" скинь сюды поглядим...
...
Рейтинг: 0 / 0
Кодировка.
    #32226116
JDim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рад бы кинуть, но нечего.
Я раньше приложения на жабе ваял. И довольно специфические - рынок ЦБ и речь. Теперь решил вот заняться вебом. Но жабу бросать лень, решил на ней (например, сервлеты в сессиях сохраняют соединение с БД, а PHP - нет, а ASP - меня вообще не устраивает - басик подобный язык, у меня на басик страшная алергия) - да и привык.
Если есть еще что-то, на что я пока не наткнулся пиши. Буду рад, не наступать на грабли.
...
Рейтинг: 0 / 0
Кодировка.
    #32231904
Фотография SmaLL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предлагаю почитать здесь
...
Рейтинг: 0 / 0
Кодировка.
    #32232421
JDim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
...
Рейтинг: 0 / 0
Кодировка.
    #32236258
Alexey P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как сделать чтобы Java понимала кодировку CL8MSWIN1251? Сейчас выдает UnsupportedEncodingException
...
Рейтинг: 0 / 0
Кодировка.
    #32236784
Фотография SmaLL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо CL8MSWIN1251 пиши windows-1251
...
Рейтинг: 0 / 0
Кодировка.
    #32282373
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как определить в какой кодировке приходит строка.
Если я пишу
String str = "ВАСЯ";
то потом так что-ли ее перекодировать в констр
String str1=new String(str.getBytes("ISO-8859-1"), "windows-1251");
out.print(str1);
Чего-то я не пойму
...
Рейтинг: 0 / 0
Кодировка.
    #32282787
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приведи - ка лучше здесь свой код, примерный хотя бы... Тогда всё сразу и решим.
...
Рейтинг: 0 / 0
Кодировка.
    #32286214
Vinny Puhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
riman'y:

Привет!
Не подскажешь, что нужно сделать, чтобы сервлет правильно отображал русские буковки в 1251?

Механизм такой:
сервлет коннектится к СУБД Информих (9.2), берет оттудова инфу(поле) в кодировке 1251 (методом getString("<field_name>")) и выкладывает их на ХТМЛ страницу (генерит данную страницу).

Результат:
Русские буковки превращаются в ??????????? Как с этим бороться?

Заранее спасибо.
...
Рейтинг: 0 / 0
Кодировка.
    #32286444
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня такая же проблема была в своё время: Вроде бы и база в 1251 -ой кодировке и в IE 1251 стоит - всё одно - ????. Это всё вонючий веб сервер пакости подкидывает принимает в 1251, а сам перекодирует в свою (какая там у него по умолчанию поставлена). Короче, если не знаешь как настраивать на веб-сервере кодировку, попробуй как в первом моем посте этого топика (обычно всем подходило). А если не поможет попробуй другие кодировки. Или выясни в какой кодировке тебе приходит строка (есть такая функция у request'a по-моему - getEncoding()).
...
Рейтинг: 0 / 0
Кодировка.
    #32298537
Фотография SmaLL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2riman getEncoding() почти никогда не выдаЁт правильную кодировку
...
Рейтинг: 0 / 0
Кодировка.
    #32298644
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за информацию. Надо поглядеть, что за баг - мож съедобный?
...
Рейтинг: 0 / 0
Кодировка.
    #32298819
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа. А вот у меня иак получилось
public class Stc3 extends HttpServlet
{
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
res.setContentType("text/html;charset=Cp1251");

// вот именно отсюда
PrintWriter out = res.getWriter();
try
{
String myname = req.getParameter("p_name");
StringReader sr = new StringReader(myname);

int b;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while( (b = sr.read()) != -1 )
{
baos.write(b);
}
String s = baos.toString("Cp1251");
out.println("<h1>" + s + "</h1>");
.....
}
catch (UnsupportedEncodingException ee)
{
out.println("<h3>такой кодировки нет</h3> + ee.getMessage());
}
......

out.println("<form url=Stc1 method=get>");
out.println("NAME - <input type=text name=p_name>");
out.println("<input type=submit value='Say hello'>");
out.println("</form>");
.....
Может быть такое
Кстати ссылка
http://people.comita.spb.ru/users/sergeya/java/ruschars.html
...
Рейтинг: 0 / 0
Кодировка.
    #32298864
Фотография SmaLL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно принимают в той кодировке, в которой отправляют
...
Рейтинг: 0 / 0
Кодировка.
    #32299445
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ВСЁ?
...
Рейтинг: 0 / 0
Кодировка.
    #32300017
Фотография SmaLL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чЁ ещЁ может быть?

Вообще-то универсальная кодировка UTF-8, с ней нет проблем
...
Рейтинг: 0 / 0
Кодировка.
    #32302585
Vinny Puhh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблемка у меня решилась так:

public class ifx_sample extends HttpServlet {


public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
request.setCharacterEncoding("Cp1251");
response.setContentType( "text/html; charset=windows-1251" );

// А здеся и далее рабочий код...
}
...
Рейтинг: 0 / 0
Кодировка.
    #32302617
Фотография SmaLL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то как раз так и рекомендуется делать
...
Рейтинг: 0 / 0
Кодировка.
    #32304442
Фотография oson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да - работает нормал! Отлично!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Кодировка.
    #38233474
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rimanМда, была такая проблема, помню. В общем лучше не кодировать на клиенте, а принимать каракули на сервере и раскодировать. Есть такая функция у String - getBytes(codeset x). Чтобы перекодировать в нужную кодировку - передаешь конструктору String строку в старой кодировке, затем указываешь новую:
String newStr=new String(recievedStr.getBytes("ISO-8859-1"),"Cp1251");
Красивее решения найти в своё время не смог. Если найдешь сам - кинь в форум поглядим.
то что надо
...
Рейтинг: 0 / 0
Кодировка.
    #38233481
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rema174то что надо
Для Й или Щ может не работать.
...
Рейтинг: 0 / 0
Кодировка.
    #38233487
rema174
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczrema174то что надо
Для Й или Щ может не работать.
проверил. при перекодировании в utf-8 работает.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Кодировка.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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