Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Кодировка. / 25 сообщений из 25, страница 1 из 1
04.08.2003, 09:11:07
    #32225972
JDim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
Всем привет!
Подскажите как решить проблему с передачей в сервлет данных из html страницы содержащие руские буковки.
Я сделал, но на мой взгляд коряво. На клиентской стороне перед отправкой я из строки сделал массив аски кодов и уже его отправляю. На серверной стороне из строки типа "код,код,код" собираю сообшение от юзера. Но это ведь коряво! И меня ломает от такого решения.
Спасибо всем кто ответит и поймет мою страсть к красивым кодам ;)
JDim.
...
Рейтинг: 0 / 0
04.08.2003, 09:34:55
    #32225987
riman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
Мда, была такая проблема, помню. В общем лучше не кодировать на клиенте, а принимать каракули на сервере и раскодировать. Есть такая функция у String - getBytes(codeset x). Чтобы перекодировать в нужную кодировку - передаешь конструктору String строку в старой кодировке, затем указываешь новую:
String newStr=new String(recievedStr.getBytes("ISO-8859-1"),"Cp1251");
Красивее решения найти в своё время не смог. Если найдешь сам - кинь в форум поглядим.
...
Рейтинг: 0 / 0
04.08.2003, 09:42:37
    #32225996
JDim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
Спасибо!
Рулёзную штуку подсказал!
А я как ... туды-сюды коды кидал.
Да, все гениальное просто! И красиво!
Спасибо, вопрос снят.
...
Рейтинг: 0 / 0
04.08.2003, 10:50:05
    #32226091
riman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
Раньше в апаче была такая конфига. В ней можно было указывать кодпейдж и нафиг никаких перекодировок делать не нужно было. В "кошке" доков под конфиг у меня не было, поэтому пришлось вот так вот вывернуться. Так вот: если что знаешь по "кошкиным конфигам" скинь сюды поглядим...
...
Рейтинг: 0 / 0
04.08.2003, 11:03:24
    #32226116
JDim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
Рад бы кинуть, но нечего.
Я раньше приложения на жабе ваял. И довольно специфические - рынок ЦБ и речь. Теперь решил вот заняться вебом. Но жабу бросать лень, решил на ней (например, сервлеты в сессиях сохраняют соединение с БД, а PHP - нет, а ASP - меня вообще не устраивает - басик подобный язык, у меня на басик страшная алергия) - да и привык.
Если есть еще что-то, на что я пока не наткнулся пиши. Буду рад, не наступать на грабли.
...
Рейтинг: 0 / 0
09.08.2003, 18:10:17
    #32231904
SmaLL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
Предлагаю почитать здесь
...
Рейтинг: 0 / 0
11.08.2003, 08:23:16
    #32232421
JDim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
Спасибо.
...
Рейтинг: 0 / 0
14.08.2003, 11:17:46
    #32236258
Alexey P
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
Как сделать чтобы Java понимала кодировку CL8MSWIN1251? Сейчас выдает UnsupportedEncodingException
...
Рейтинг: 0 / 0
14.08.2003, 15:26:46
    #32236784
SmaLL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
Вместо CL8MSWIN1251 пиши windows-1251
...
Рейтинг: 0 / 0
02.10.2003, 17:12:05
    #32282373
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
А как определить в какой кодировке приходит строка.
Если я пишу
String str = "ВАСЯ";
то потом так что-ли ее перекодировать в констр
String str1=new String(str.getBytes("ISO-8859-1"), "windows-1251");
out.print(str1);
Чего-то я не пойму
...
Рейтинг: 0 / 0
03.10.2003, 09:25:32
    #32282787
riman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
Приведи - ка лучше здесь свой код, примерный хотя бы... Тогда всё сразу и решим.
...
Рейтинг: 0 / 0
07.10.2003, 13:33:05
    #32286214
Vinny Puhh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
riman'y:

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

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

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

Заранее спасибо.
...
Рейтинг: 0 / 0
07.10.2003, 15:28:11
    #32286444
riman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
У меня такая же проблема была в своё время: Вроде бы и база в 1251 -ой кодировке и в IE 1251 стоит - всё одно - ????. Это всё вонючий веб сервер пакости подкидывает принимает в 1251, а сам перекодирует в свою (какая там у него по умолчанию поставлена). Короче, если не знаешь как настраивать на веб-сервере кодировку, попробуй как в первом моем посте этого топика (обычно всем подходило). А если не поможет попробуй другие кодировки. Или выясни в какой кодировке тебе приходит строка (есть такая функция у request'a по-моему - getEncoding()).
...
Рейтинг: 0 / 0
20.10.2003, 15:05:05
    #32298537
SmaLL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
2riman getEncoding() почти никогда не выдаЁт правильную кодировку
...
Рейтинг: 0 / 0
20.10.2003, 15:59:31
    #32298644
riman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
Спасибо за информацию. Надо поглядеть, что за баг - мож съедобный?
...
Рейтинг: 0 / 0
20.10.2003, 17:13:09
    #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
20.10.2003, 17:30:42
    #32298864
SmaLL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
Обычно принимают в той кодировке, в которой отправляют
...
Рейтинг: 0 / 0
21.10.2003, 11:16:41
    #32299445
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
И ВСЁ?
...
Рейтинг: 0 / 0
21.10.2003, 15:13:03
    #32300017
SmaLL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
А чЁ ещЁ может быть?

Вообще-то универсальная кодировка UTF-8, с ней нет проблем
...
Рейтинг: 0 / 0
23.10.2003, 10:39:07
    #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
23.10.2003, 10:57:23
    #32302617
SmaLL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
Вообще-то как раз так и рекомендуется делать
...
Рейтинг: 0 / 0
24.10.2003, 15:01:28
    #32304442
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
Да - работает нормал! Отлично!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
19.04.2013, 20:16:48
    #38233474
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
rimanМда, была такая проблема, помню. В общем лучше не кодировать на клиенте, а принимать каракули на сервере и раскодировать. Есть такая функция у String - getBytes(codeset x). Чтобы перекодировать в нужную кодировку - передаешь конструктору String строку в старой кодировке, затем указываешь новую:
String newStr=new String(recievedStr.getBytes("ISO-8859-1"),"Cp1251");
Красивее решения найти в своё время не смог. Если найдешь сам - кинь в форум поглядим.
то что надо
...
Рейтинг: 0 / 0
19.04.2013, 20:29:28
    #38233481
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
rema174то что надо
Для Й или Щ может не работать.
...
Рейтинг: 0 / 0
19.04.2013, 20:40:55
    #38233487
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодировка.
Blazkowiczrema174то что надо
Для Й или Щ может не работать.
проверил. при перекодировании в utf-8 работает.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Кодировка. / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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