Проблема с encoding используя websphere

Ну, случай состоит в том, что в моем заголовке html у меня есть этикетки:

    <%@ 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">

все функционирует правильно, кроме поисковая служба, которая после того, как ищет из-за нее ñ, ничего не находит, чтобы это решать на моем сервере websphere, я добавил как аргумент характерного JVM следующее:-Dclient.encoding.override=UTF-8 и это начало функционировать правильно, но однако выбрав данные с тильдами и пробовать нажимать какую-то кнопку обновления или консультации в связи с этой информацией, он приводит меня в характерное окно ошибки, так как данные с тильдой он подбирает их как неузнаваемые (только эта или эти буквы, у которых есть акцент).

0
задан 29.07.2016, 13:29
2 ответа

… все функционирует правильно, кроме поисковая служба …

Если ты добавляешь свойство -Dclient.encoding.override=UTF-8, ты показываешь его WebSphere, каково кодирование, которое он должен использовать (только, когда эта не определена, p.ej.: 'application/x-www-form-urlencoded; charset=UTF-8') чтобы читать параметры контента просьбы POST или параметры в query string. Различный в -Dfile.encoding=UTF-8, который изменит назначенное по умолчанию кодирование, использованное, прочитав или написав файлы, и т.д.

Если бы перед тем, как определять это свойство, поисковая служба, не функционировавший правильно, это могло значить, что поисковая служба посылала данные, кодировавшие в UTF-8, но WebSphere декодировал их используя МЕЖДУНАРОДНУЮ ОРГАНИЗАЦИЮ ПО СТАНДАРТИЗАЦИИ-8859-1.

Например, слово IBAÑEZ смоги быть посланным как IBA%C3%91EZ (UTF-8) или IBA%D1EZ (МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ-8859-1). Если сервер получает IBA%C3%91EZ (UTF-8), тогда WebSphere мог бы декодировать это в UTF-8 как IBAÑEZ (IBA\u00D1EZ) ✔ или в МЕЖДУНАРОДНОЙ ОРГАНИЗАЦИИ ПО СТАНДАРТИЗАЦИИ-8859-1 как IBAÃEZ (IBA\u00C3\u0091EZ) ✘.

… однако выбрав данные с тильдами и пробовать нажимать какую-то кнопку обновления или консультации в связи с этой информацией он приводит меня в характерное окно ошибки, так как данные с тильдой он подбирает их как неузнаваемые …

Понимая, что все функционировало правильно перед тем, как добавлять свойство -Dclient.encoding.override=UTF-8, тогда это значит, что он декодирует с UTF-8 данные, полученные как МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ-8859-1. А именно, если WebSphere получает IBA%D1EZ (МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ-8859-1), сейчас он это декодирует в UTF-8 как IBA�EZ (IBA\uFFFDEZ) ✘.


Ты должен обеспечивать себе, что данные посланы как UTF-8. Если у тебя есть формуляры, которые посланы без AJAX, тогда добавь признак accept-charset. Он он:

<form … accept-charset="UTF-8" … >

С языком сценариев JavaScript, используй функцию encodeURI() или encodeURIComponent() (как это был случай) чтобы кодировать данные, которых нужно посылать в UTF-8 с AJAX. jQuery, используй UTF-8, чтобы кодировать объекты (p.ej.: { nombre: var2 }) в data.

В случае, если ты изменишь заголовок JSPs в UTF-8 (меняя также кодирование самого файла), предыдущее может быть опциональным в большинстве браузеров, кроме возможно в Internet Explorer.

3
ответ дан 24.11.2019, 13:45
  • 1
    за мной последует точно второе, о чем ты упомянул, а именно, что декодирует с UTF-8 данные, полученные как МЕЖДУНАРОДНАЯ ОРГАНИЗАЦИЯ ПО СТАНДАРТИЗАЦИИ-8859-1, я думаю, что ты дал мне хорошие решения, но я не понимаю их очень хорошо под моим отсутствием опыта, чтобы воплощать их на aplicaci и # 243; n. и #191; Ты думаешь, что ты можешь давать мне alg и # 250; n тип orientaci и # 243; n немного м и # 225; s f и # 225; cil? –  Javier GT 02.08.2016, 13:24
  • 2
    Если это и #250; nico, что не функционировал раньше, было поисковой службой, тогда нужно изменять форму в c и # 243; mo env и # 237; в данные. и #191; C и # 243; mo est и # 225; s посылая данные? и #191; С языком сценариев JavaScript, jQuery, или его один submit, и т.д.? –  Paul Vargas 04.08.2016, 07:14
  • 3
    Хорошие @PaulVargas, env и # 237; в данные в trav и # 233; s формуляра из-за action и я думаю, что неудача проистекает того, что по умолчанию struts у него есть редкий enctype. Я пробуюсь это изменить и ищу того, который берет их и #241; но я не даю с и #233; l. Я хорошо направлен? –  Javier GT 08.08.2016, 13:00
  • 4
    Я предполагаю, что est и # 225; s используя html:form. Ты можешь менять эти tags на обычный HTML. Зависит комплексность. Aqu и # 237; есть пример. –  Paul Vargas 08.08.2016, 16:49
  • 5
    Действительно, если хороший tendr и # 237; в который касаться всех формуляров, encontr и # 233; следующий soluci и # 243; n, он tambi и # 233; n немного co и # 241; azo и предпочитать и # 237; в небольшое количество м и # 225; s глобальный и широко распространенный но хороший, это est и # 225; хорошо: currentForm.setVB (AU.searchTableJQuery (new String (request.getParameter (" variable") .getBytes (" Международная организация по стандартизации-8859-1"), " UTF-8"))); –  Javier GT 09.08.2016, 12:21

encoding сейчас JVM - в UTF-8, и то, что ты посылаешь ему с JSP, charset=ISO-8859-1, возможно производит символы, которые он не признает теми, которые приносят тильду: успех éxito Intenta оставляя тот же encoding в твой вид JSP:

Рекомендует использовать тот же encoding, который у тебя есть в Цели, UTF-8 шире, чем Латинский язык 1 (другое имя iso-8859-1), у него есть больше символов и следовательно возможно использовать для многих других языков без проблем.

<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
2
ответ дан 24.11.2019, 13:45
  • 1
    Добавочный в это, нужно убеждаться, которого файлы сохраняли в формате UTF-8. –   29.07.2016, 18:05
  • 2
    @Ventura уже prob и # 233; это и не я функция и # 243; это он и # 237; из-за Интернета и я захотел убедиться перед тем, как формулировать вопрос, вот то, что кажется мне дополнительным и # 241; или... Какой-то soluci и # 243; n различный? Perd и # 243; n из-за того, что нет в и # 241; adido в моем вопросе, что уже prob и # 233; этот soluci и # 243; n... –  Javier GT 02.08.2016, 13:15