Девушка, проверьте свой реальный CONTENT_TYPE. Комментарий справа ниже наводит на смутные сомнения (что за UFT-8?)
M> response.setContentType(CONTENT_TYPE); // "text/xml; charset=UFT-8" берется из глобалсов
Других причин Ваших бед не вижу.
Кроме того, Ваш запрос вызывает тоже некоторое недоумение:
M> http_request.onreadystatechange = та-функция-которая-вызовется-при-ответе; M> http_request.open('GET', url); M> http_request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); M> http_request.setRequestHeader("Content-Type", "text/xml; charset=UTF-8"); M> http_request.send(null);
Во-первых, чем мудрить с "If-Modified-Since", проще на сервере при ответе на запрос добавлять заголовки
Во-вторых, Ваш "Content-Type" в запросах типа 'GET' не работает. Он определяет кодировку тела запроса ('POST'). Можете смело убрать. Запрос (url) у Вас пойдет в той кодировке, которую имеет контекст (страница, содержащая код JavaScript). У Вас это utf-8, если не ошибаюсь.
И напоследок совет для отладки:
M> В яваскрипте я этот хмл беру вот так M> M> var xmldoc = http_request.responseXML;
перед "вот так" вставьте
alert(http_request.responseText);
и увидите тот XML, который приходит, во всей красе.
Здравствуйте, Lucker, Вы писали:
L>Здравствуйте, Mimi, Вы писали:
M>>Ой.. не-а M>>Если просто сервлет в браузере запустить (без всего application-а) то XML показывается кривой (т.е. с нечитабельными русскими символами). Хм..
L>ну т.е. понятно куда копать. проверь, что действительно перед твоим сервлетом не стоит фильтров, вызывающих getWriter ответа.
Хм... нашла решение вот какое. Перед "отправкой" из сервлета out.print-ом, я добавила
String toOut = new String(xmlBuf.getBytes("Cp1251"), Globals.ENCODING); // который UTF-8
Привет всем!
Очень нужна ваша помощь.
В общем, у меня, вопрос по AJAX-у, кто сталкивался с проблемой кодировки?
Ситуация такая:
у меня есть jsp страница, которая использует Ajax.
Charset для самой страницы — UTF-8 <%@ page contentType="text/html; charset=UTF-8" %>
в AJAX-овой функции я опять же ставлю чарсет в утф-8 http_request.setRequestHeader("Content-Type", "text/xml; charset=UTF-8");
И сервлет, который мне XML для response-а возвращает, у него ТОЖЕ инкодинг УТФ-8 <?xml version="1.0" encoding="utf-8"?>
Но каким-то хамским образом, AJAX умудряется наплевать на UTF, и показывает вот такую белиберду РљСѓРєСѓ
Обрыла все ресурсы по AJAX-у которые только нашла, и везде пишут что мол "достаточно поставить хэдер, что у тебя content-type UTF-8, и все должно работать"..
Ниченепонимаю.. я так и делаю, вроде, но нифига из того что кирилицей написано, не видно.
XML смотрела (вывела в файл логгером), все там нормально, русские буквы на месте.
По ходу, все буровит charset в самом http_request-е.
Кто из вас сталкивался с тиакой проблемой? Какие есть для этого решения?
Hello, Mimi!
You wrote on Fri, 20 Oct 2006 08:30:02 GMT:
M> Очень нужна ваша помощь. M> В общем, у меня, вопрос по AJAX-у, кто сталкивался с проблемой M> кодировки? M> Ситуация такая: M> у меня есть jsp страница, которая использует Ajax. M> Charset для самой страницы — UTF-8 <%@ page M> contentType="text/html; charset=UTF-8" %> M> в AJAX-овой функции я опять же ставлю чарсет в утф-8 M> http_request.setRequestHeader("Content-Type", "text/xml; M> charset=UTF-8"); M> И сервлет, который мне XML для response-а возвращает, у него ТОЖЕ M> инкодинг УТФ-8 <?xml version="1.0" encoding="utf-8"?> M> Но каким-то хамским образом, AJAX умудряется наплевать на UTF, и M> показывает вот такую белиберду РљСѓРєСѓ M> Обрыла все ресурсы по AJAX-у которые только нашла, и везде пишут M> что мол "достаточно поставить хэдер, что у тебя content-type M> UTF-8, и все должно работать".. M> Ниченепонимаю.. я так и делаю, вроде, но нифига из того что M> кирилицей написано, не видно. M> XML смотрела (вывела в файл логгером), все там нормально, русские M> буквы на месте. M> По ходу, все буровит charset в самом http_request-е. M> Кто из вас сталкивался с тиакой проблемой? Какие есть для этого M> решения?
Ajax, если вы еще не поняли, это название техники, которая реализуется множеством фреймворков и библиотек. Что конкретно вы используете?
Здравствуйте, Yuri Khomich, Вы писали:
YK>Hello, Mimi! YK>You wrote on Fri, 20 Oct 2006 08:30:02 GMT:
YK>Ajax, если вы еще не поняли, это название техники, которая реализуется множеством фреймворков и библиотек. Что конкретно вы используете?
Мы конкретно используем JavaScript на JSP странице. XML нам приходит из сервлета.
Hello, Mimi!
You wrote on Fri, 20 Oct 2006 10:40:11 GMT:
YK>> Ajax, если вы еще не поняли, это название техники, которая YK>> реализуется множеством фреймворков и библиотек. Что конкретно YK>> вы используете?
M> Мы конкретно используем JavaScript на JSP странице. XML нам M> приходит из сервлета.
Круто. Повторяю вопрос: каким образом вы посылаете запрос? Используете голый XMLHttpRequest?
Здравствуйте, Mycopka, Вы писали:
M>Здравствуйте, Mimi, Вы писали:
M>>Но каким-то хамским образом, AJAX умудряется наплевать на UTF, и показывает вот такую белиберду РљСѓРєСѓ
M>Вопрос на засыпку, белеберда получается при просмотре в какой кодировке? Может быть прошла двойная перекодировка еще до Servlet'а?
При просмотре в УТФ-8.
А каким образом могла произойти перекодировка? Перед посылкой запроса я ставлю хэдер
Здравствуйте, Mimi, Вы писали:
M>Здравствуйте, Mycopka, Вы писали:
M>При просмотре в УТФ-8. M>А каким образом могла произойти перекодировка? Перед посылкой запроса я ставлю хэдер
M>
M>В сервлете контент-тайп стоит "text/xml;charset=UTF-8". Что еще проверить?
Я так понимаю "Куку" в кодировке "UTF-8" было передано куда-то как "Windows-1251", а результат выдан в сервлет, где жестко определено, что это опять же "UTF-8".
Hello, Mimi!
You wrote on Fri, 20 Oct 2006 10:59:51 GMT:
YK>> Круто. Повторяю вопрос: каким образом вы посылаете запрос? YK>> Используете голый XMLHttpRequest?
M> Значит так: M> вот так инициализируется http_request (не знаю, "голый" он при M> этом получается аль нет) M>
Здравствуйте, Mycopka, Вы писали:
M>Я так понимаю "Куку" в кодировке "UTF-8" было передано куда-то как "Windows-1251", а результат выдан в сервлет, где жестко определено, что это опять же "UTF-8".
Из яваскрипта делается запрос AJAX-ом на url (который и есть сервлет с кодировкой утф-8). Этот сервлет берет из бизнес-логики XML (причем, в нем все русские символы нормально читаются, выводила логгером, видела), и как результат сервлет выдает XML. В яваскрипте я этот хмл беру вот так
var xmldoc = http_request.responseXML;
Дальше его разбираю. И вот тут он уже калеченный. Каким образом, непонятно..
Здравствуйте, Yuri Khomich, Вы писали:
YK>Hello, Mimi! YK>You wrote on Fri, 20 Oct 2006 11:54:18 GMT:
YK>>> Подозреваю, что если использовать метод POST то все ок?
M>> да нет.. то же самое.
YK>Давайте код сервлета, который формирует ответ. YK>И проверьте на всякий случай нет ли фильтров, которые могут производить перекодировку.
Фильтр есть, но он вроде как в УТФ-8 все и перекодирует. Вот что у меня добавлено в web.xml
Здравствуйте, Mimi, Вы писали:
M>Проблема в том, что "много строк проскипано"?
Вы Yuri Khomich?
M>Я правильно поняла?
Кто знает...
M>Пардон, не знала.
Так может стоит просветится?
Hello, Mimi!
You wrote on Fri, 20 Oct 2006 12:35:55 GMT:
YK>> Давайте код сервлета, который формирует ответ. YK>> И проверьте на всякий случай нет ли фильтров, которые могут YK>> производить перекодировку.
M> Фильтр есть, но он вроде как в УТФ-8 все и перекодирует.
M>
Я имел в виду фильтр, который перекодирует ответ, а не запрос.
Для уверенности фильтры временно можно убрать, строки и так в UTF-8.
M> Вот примерно код сервлета:
M>
Здравствуйте, Yuri Khomich, Вы писали:
YK>Hello, Mimi! YK>You wrote on Fri, 20 Oct 2006 12:35:55 GMT:
YK>>> Давайте код сервлета, который формирует ответ. YK>>> И проверьте на всякий случай нет ли фильтров, которые могут YK>>> производить перекодировку.
M>> Фильтр есть, но он вроде как в УТФ-8 все и перекодирует.
M>>
YK>Я имел в виду фильтр, который перекодирует ответ, а не запрос. YK>Для уверенности фильтры временно можно убрать, строки и так в UTF-8.
Нет, такого фильтра нет. Думаете, стоит использовать также и фильтр для перекодировки ответа?
Щас попробую убрать фильтр временно...
M>> Вот примерно код сервлета:
M>>
Hello, Mimi!
You wrote on Fri, 20 Oct 2006 13:17:41 GMT:
YK>> Я имел в виду фильтр, который перекодирует ответ, а не запрос. YK>> Для уверенности фильтры временно можно убрать, строки и так в YK>> UTF-8.
M> Нет, такого фильтра нет. Думаете, стоит использовать также и M> фильтр для перекодировки ответа?
Использовать нужно то, что необходимо. В данном конкретном случае фильтр для ответа не нужен.
M>>>
YK>> Если retXmlBuf это строка, а не какой-нибудь массив байт, то YK>> идей больше нет.
M> retXmlBuf у нас String. M> Т.е. если бы это был byte array то возможно это могло стать M> причиной ошибки?
Проблема могла бы быть, если бы байты перегонялись в строку с использовнием кодировки по умолчанию, отличной от UTF-8. Но как себя ведет PrintWriter c массивами байт я честно говоря не помню.
M>// Собсна буфер: M>// <?xml version="1.0" encoding="utf-8"?>
(1)
[.....] M>// <Name Name="Name" formap="1">Куку</Name> M>// <Description Name="Description">тралала</Description>
(2)
[.....]
разве в utf-8 русские буковки так выглядят??
откуда вы xml берёте?
не может такого получиться, что взяли строки в cp1251, а в заголовок encoding — utf-8??
а вот вы попробуйте взять тот xml который вы отквотили, сохраните в файлик *.xml и IE его откройте.
ведь не откроется он...
y>> разве в utf-8 русские буковки так выглядят?? YK>Ну а как _буковки_ еще могут выглядеть?
русские буковки в utf-8 как выглядят? примерно так как у нее в исходном сообщении: РљСѓРєСѓ
YK>Она ж вам не бинарник показывает.
гхм.. что есть бинарник в случае xml-я?
у неё я понял вроде был фильтр, который перекодирует всё в utf.
ей бы логировать xml-и уже после отработки фильтра. и показать что получается
Hello, yacc!
You wrote on Fri, 20 Oct 2006 14:45:34 GMT:
y>>> разве в utf-8 русские буковки так выглядят?? YK>> Ну а как _буковки_ еще могут выглядеть? y> русские буковки в utf-8 как выглядят? примерно так как у нее в y> исходном сообщении: РљСѓРєСѓ
Русские символы, так же как и все другие, представляются в виде байт. Как это выглядит, зависит исключительно от того, какую кодировку использовать для просмотра.
YK>> Она ж вам не бинарник показывает. y> гхм.. что есть бинарник в случае xml-я?
Байты.
y> у неё я понял вроде был фильтр, который перекодирует всё в utf. y> ей бы логировать xml-и уже после отработки фильтра. и показать что y> получается
YK>Русские символы, так же как и все другие, представляются в виде байт. Как это выглядит, зависит исключительно от того, какую кодировку использовать для просмотра.
лол. за ликбез спасибо)))
тут сообщения в 1251. в её терминах я и говорю.
y>> гхм.. что есть бинарник в случае xml-я? YK>Байты.
логично.
YK>Фильтр этот давно уже отключить надо
надо. но если у неё действительно изначальные xml-и в cp1251, а в заголовке прописан utf — после отключени фильтра responseXML работать не будет...
Mimi wrote: > http_request.overrideMimeType('text/xml');
Думаю здесь должно быть:
[lava]
http_request.overrideMimeType('text/xml; charset=UTF-8");
[/java]
Posted via RSDN NNTP Server 2.0
Re[10]: Unicode && AJAX
От:
Аноним
Дата:
23.10.06 06:48
Оценка:
Здравствуйте, mag2005, Вы писали:
M>Здравствуйте, Mimi, Вы писали:
M>Девушка, проверьте свой реальный CONTENT_TYPE. Комментарий справа ниже наводит на смутные сомнения (что за UFT-8?)
Осспади... да опечатка в комменте. Прям совсем я что ли...
public static final String ENCODING = "UTF-8";
M>> response.setContentType(CONTENT_TYPE); // "text/xml; charset=UFT-8" берется из глобалсов
M>Других причин Ваших бед не вижу.
M>Кроме того, Ваш запрос вызывает тоже некоторое недоумение:
M>> http_request.onreadystatechange = та-функция-которая-вызовется-при-ответе; M>> http_request.open('GET', url); M>> http_request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); M>> http_request.setRequestHeader("Content-Type", "text/xml; charset=UTF-8"); M>> http_request.send(null);
M>Во-первых, чем мудрить с "If-Modified-Since", проще на сервере при ответе на запрос добавлять заголовки
M>response.setHeader( "Cache-Control", "no-cache" ); M>response.setHeader( "Pragma", "no-cache" );
Почему "мудрить"? И чем этот вариант лучше? Эффект-то один и тот же.
M>Во-вторых, Ваш "Content-Type" в запросах типа 'GET' не работает. Он определяет кодировку тела запроса ('POST'). Можете смело убрать. Запрос (url) у Вас пойдет в той кодировке, которую имеет контекст (страница, содержащая код JavaScript). У Вас это utf-8, если не ошибаюсь.
Именно UTF-8..
На POST меняла -- результат тот же.
M>И напоследок совет для отладки:
M>> В яваскрипте я этот хмл беру вот так M>> M>> var xmldoc = http_request.responseXML;
M>перед "вот так" вставьте
M>alert(http_request.responseText);
M>и увидите тот XML, который приходит, во всей красе.
Да делала я так. Еще в самом начале, когда заметила что русские буквы мне на страницу как положено не показываются.
В XML [логгером в файл] мне пишется все ок, а на страницу попадает криво, причем только там где я использую Ajax.
Здравствуйте, Mimi, Вы писали:
M>Из яваскрипта делается запрос AJAX-ом на url (который и есть сервлет с кодировкой утф-8). Этот сервлет берет из бизнес-логики XML (причем, в нем все русские символы нормально читаются, выводила логгером, видела).
Нормально читаются в какой кодировке?
Re[10]: Unicode && AJAX
От:
Аноним
Дата:
23.10.06 07:34
Оценка:
Здравствуйте, yacc, Вы писали:
M>>// Собсна буфер: M>>// <?xml version="1.0" encoding="utf-8"?> Y>(1) Y>[.....] M>>// <Name Name="Name" formap="1">Куку</Name> M>>// <Description Name="Description">тралала</Description> Y>(2) Y>[.....] Y>разве в utf-8 русские буковки так выглядят?? Y>откуда вы xml берёте?
XML берется из сервлета.
Y>не может такого получиться, что взяли строки в cp1251, а в заголовок encoding — utf-8?? Y>а вот вы попробуйте взять тот xml который вы отквотили, сохраните в файлик *.xml и IE его откройте. Y>ведь не откроется он...
В том-то и дело, что открывается. Я в самом начале еще писала, что XML в логи на диск пишется нормально, русские буквы читаются.
Здравствуйте, <Аноним>, Вы писали:
А>В том-то и дело, что открывается. Я в самом начале еще писала, что XML в логи на диск пишется нормально, русские буквы читаются.
выложи сюда как прикрепленый файл твой XML, или куда-нить в доступное место.
Здравствуйте, Lucker, Вы писали:
L>Здравствуйте, <Аноним>, Вы писали:
А>>В том-то и дело, что открывается. Я в самом начале еще писала, что XML в логи на диск пишется нормально, русские буквы читаются. L>выложи сюда как прикрепленый файл твой XML, или куда-нить в доступное место.
Здравствуйте, Lucker, Вы писали:
L>Здравствуйте, Mimi, Вы писали:
M>>Вот примерно код сервлета:
M>>[code] M>>public void doPost(HttpServletRequest request, HttpServletResponse response) throws M>> ServletException, IOException M>>{ M>> // проверяем, есть ли юзер в сессии M>> // если да, пишем лог, что такой-то юзер запросил такую-то инфу M>> // ... проверяем права юзера... M>> // если можно позволить юзеру достать ту инфу, то
M>> response.setContentType(CONTENT_TYPE); // "text/xml; charset=UFT-8" берется из глобалсов M>> blManager blMan = new blManager(); M>> String retXmlBuf = null;
M>> if(isAuthorizedToGetThisInfo) retXmlBuf = blMan.getXMLfor(utilities.Globals.SOME_DEFINED_VAR); M>> out.println(retXmlBuf); M>> out.close();
L>я бы порекомендовал пользоваться для вывода символьных данных не ServletOutputStream-ом а PrintWriter-ом, если это не так.
Здравствуйте, Mimi, Вы писали: А>>>В том-то и дело, что открывается. Я в самом начале еще писала, что XML в логи на диск пишется нормально, русские буквы читаются. L>>выложи сюда как прикрепленый файл твой XML, или куда-нить в доступное место.
M>Вот здесь можно посмотреть XML
Здравствуйте, Mimi, Вы писали:
L>>я бы порекомендовал пользоваться для вывода символьных данных не ServletOutputStream-ом а PrintWriter-ом, если это не так.
M>Теперь использую PrintWriter -- один фиг.
ну и конечно response.getWriter нужно вызывать после response.setContentType.
Здравствуйте, Lucker, Вы писали:
L>Здравствуйте, Mimi, Вы писали:
M>>Из яваскрипта делается запрос AJAX-ом на url (который и есть сервлет с кодировкой утф-8). Этот сервлет берет из бизнес-логики XML (причем, в нем все русские символы нормально читаются, выводила логгером, видела).
L>Нормально читаются в какой кодировке?
Ну, в той, которая у меня в Сервлете, т.е. UTF-8
response.setCharacterEncoding(Globals.ENCODING); // "UTF-8"
PrintWriter out = new PrintWriter(response.getWriter());
Я потом в логи вывожу — проверяю, какой инкодинг.. и заодно вывожу буффер XML-я, все зашибись. Пишу XML в файл, открываю IE, все ок. А вот на странице где JavaScript берет responseXML уже все кривое. Хотя там тоже UTF-8.. Теряюсь в догадках...
Здравствуйте, Lucker, Вы писали:
L>Здравствуйте, Mimi, Вы писали:
L>>>я бы порекомендовал пользоваться для вывода символьных данных не ServletOutputStream-ом а PrintWriter-ом, если это не так.
M>>Теперь использую PrintWriter -- один фиг.
L>ну и конечно response.getWriter нужно вызывать после response.setContentType.
Ага, вот:
response.setContentType(CONTENT_TYPE);
response.setCharacterEncoding(Globals.ENCODING);
PrintWriter out = new PrintWriter(response.getWriter());
M>response.setContentType(CONTENT_TYPE);
M>response.setCharacterEncoding(Globals.ENCODING);
M>PrintWriter out = new PrintWriter(response.getWriter());
M>
а точно нигде раньше по коду невызывается response.getWriter()?
Здравствуйте, Mimi, Вы писали:
M>Я потом в логи вывожу — проверяю, какой инкодинг.. и заодно вывожу буффер XML-я, все зашибись. Пишу XML в файл, открываю IE, все ок. А вот на странице где JavaScript берет responseXML уже все кривое. Хотя там тоже UTF-8.. Теряюсь в догадках...
а если напрямую отправить такой запрос из браузера, тоже все в порядке?
M>>Девушка, проверьте свой реальный CONTENT_TYPE. Комментарий справа ниже наводит на смутные сомнения (что за UFT-8?)
А>Осспади... да опечатка в комменте. Прям совсем я что ли...
А>
А>public static final String ENCODING = "UTF-8";
А>
А>
А Вы, девушка, не хихикайте. Вы мне ENCODING показали, а интересует CONTENT_TYPE. Вы проверьте все-таки, что там пишется. Должно быть "text/xml; charset=utf-8".
Здравствуйте, mag2005, Вы писали:
M>>>Девушка, проверьте свой реальный CONTENT_TYPE. Комментарий справа ниже наводит на смутные сомнения (что за UFT-8?)
А>>Осспади... да опечатка в комменте. Прям совсем я что ли...
А>>
А>>public static final String ENCODING = "UTF-8";
А>>
А>>
M>А Вы, девушка, не хихикайте. Вы мне ENCODING показали, а интересует CONTENT_TYPE. Вы проверьте все-таки, что там пишется. Должно быть "text/xml; charset=utf-8".
Хихикать перестала.. значит, смотрим (часть кода из сервлета)
private static final String CONTENT_TYPE = "text/xml; charset=" + Globals.ENCODING;
Здравствуйте, Lucker, Вы писали:
L>Здравствуйте, Mimi, Вы писали:
M>>Ага, вот:
M>>
M>>response.setContentType(CONTENT_TYPE);
M>>response.setCharacterEncoding(Globals.ENCODING);
M>>PrintWriter out = new PrintWriter(response.getWriter());
M>>
L>а точно нигде раньше по коду невызывается response.getWriter()?
Это единственный вызов response.getWriter() в том сервлете.
Здравствуйте, Lucker, Вы писали:
L>Здравствуйте, Mimi, Вы писали:
M>>Я потом в логи вывожу — проверяю, какой инкодинг.. и заодно вывожу буффер XML-я, все зашибись. Пишу XML в файл, открываю IE, все ок. А вот на странице где JavaScript берет responseXML уже все кривое. Хотя там тоже UTF-8.. Теряюсь в догадках...
L>а если напрямую отправить такой запрос из браузера, тоже все в порядке?
Ой.. не-а
Если просто сервлет в браузере запустить (без всего application-а) то XML показывается кривой (т.е. с нечитабельными русскими символами). Хм..
Re[2]: Unicode && AJAX
От:
Аноним
Дата:
23.10.06 11:59
Оценка:
Здравствуйте, Blazkowicz, Вы писали:
B>Здравствуйте, Mimi, Вы писали:
M>>Но каким-то хамским образом, AJAX умудряется наплевать на UTF, и показывает вот такую белиберду РљСѓРєСѓ
B>Вид — Кодировка а браузере что показывает?
В том фрейме, где у меня Ajax юзается -- Unicode(UTF-8)
А если просто сервлет в браузере запустить (без всего application-а) то XML показывается кривой (т.е. с нечитабельными русскими символами) и кодировка правым кликом получается просто Unicode и конечно все кодировки disabled..
Здравствуйте, Mimi, Вы писали:
M>Ой.. не-а M>Если просто сервлет в браузере запустить (без всего application-а) то XML показывается кривой (т.е. с нечитабельными русскими символами). Хм..
ну т.е. понятно куда копать. проверь, что действительно перед твоим сервлетом не стоит фильтров, вызывающих getWriter ответа.
Re: Unicode && AJAX
От:
Аноним
Дата:
23.10.06 12:16
Оценка:
Здравствуйте, Mimi, Вы писали:
я извиняюсь, а вдруг....
может в самом XML этого нету?
Здравствуйте, Lucker, Вы писали:
L>Здравствуйте, Mimi, Вы писали:
M>>Ой.. не-а M>>Если просто сервлет в браузере запустить (без всего application-а) то XML показывается кривой (т.е. с нечитабельными русскими символами). Хм..
L>ну т.е. понятно куда копать. проверь, что действительно перед твоим сервлетом не стоит фильтров, вызывающих getWriter ответа.
Да, видимо это портачит мой PrintWriter, потому как в лог и в файл пишется ок. Буду искать...
Здравствуйте, Lucker, Вы писали:
L>Здравствуйте, Mimi, Вы писали:
M>>Ой.. не-а M>>Если просто сервлет в браузере запустить (без всего application-а) то XML показывается кривой (т.е. с нечитабельными русскими символами). Хм..
L>ну т.е. понятно куда копать. проверь, что действительно перед твоим сервлетом не стоит фильтров, вызывающих getWriter ответа.
Блинн.. приколитесь:
В сервлете поменяла (так, эксперимента ради, кодировку на Windows-1252), и все показывается как надо. Хотя, XML мне приходит в мой сервлет в утф-8, как такое может быть?
Здравствуйте, Lucker, Вы писали:
L>Здравствуйте, Mimi, Вы писали:
M>>Ой.. не-а M>>Если просто сервлет в браузере запустить (без всего application-а) то XML показывается кривой (т.е. с нечитабельными русскими символами). Хм..
L>ну т.е. понятно куда копать. проверь, что действительно перед твоим сервлетом не стоит фильтров, вызывающих getWriter ответа.
Здравствуйте, Mimi, Вы писали:
M>Блинн.. приколитесь: M>В сервлете поменяла (так, эксперимента ради, кодировку на Windows-1252), и все показывается как надо. Хотя, XML мне приходит в мой сервлет в утф-8, как такое может быть?
Я уже говорил как:
передано куда-то как "Windows-1251", а результат выдан в сервлет, где жестко определено, что это опять же "UTF-8"
Показывается ка надо, потому что сделала обратную перекодировку.
Здравствуйте, Mimi, Вы писали:
M>Хм... нашла решение вот какое. Перед "отправкой" из сервлета out.print-ом, я добавила
M>
String toOut = new String(xmlBuf.getBytes("Cp1251"), Globals.ENCODING); // который UTF-8
M>И все зашибись...
Не зашибись. Ты так и не нашла причину, кучка перекодировок не выход. Ужасно когда ставят костыли, а все дальнейшие подсистемы строятся уже на основе этого костыля (типа искусственного создания исправляющих друг друга ошибок). И когда кто-то потом найдет эту ошибку, ее исправление может быть очень трудоемким, поскольку на ней уже будет многое завязано.