Nano Hash - криптовалюты, майнинг, программирование

Проблемы при использовании интернационализации в JSF

У меня возникла проблема при попытке добиться интернационализации в JSF. Когда я ввожу некоторые данные на свою страницу пользовательского интерфейса (на языке, отличном от английского), это значение сохраняется в моей переменной Managed Bean в виде зашифрованного значения (даже не могу определить, какой это формат). Я не могу получить значение, поскольку я ввел его на своей странице пользовательского интерфейса. Мне нужно сохранить значения разных языков (со страницы JSF) в моей базе данных MySql. Но я изо всех сил пытаюсь получить входные значения в Managed Bean, как я сказал выше. Пожалуйста, помогите мне сделать это.

Заранее спасибо


Ответы:


1

Зашифровано? Ты шутишь. Скорее всего, вы имели в виду Mojibake.

Чтобы избежать Mojibake, вам необходимо убедиться, что вы используете одну и ту же кодировку символов во всем приложении при создании и использовании символов. В наши дни UTF-8 — разумный выбор, если вы хотите мирового господства. JSF2 уже все время по умолчанию использует UTF-8. Так что ваша проблема несколько странная.

Возможно, вы на самом деле используете PrimeFaces? Известно, что кодировка символов UTF-8 по умолчанию искажается при запуске запроса ajax. На эту часть отвечает здесь, вам нужно создать фильтр сервлета.

Или, может быть, значение на самом деле правильное, но вы печатаете значение на вывод, который вообще не поддерживает UTF-8, и поэтому вы неправильно определили причину проблемы? Например. через System.out.println() в консоли Eclipse. Вам нужно будет настроить его через Окно> Настройки> Общие> Рабочая область> Кодировка текстового файла, как указано в ответе здесь.

Или, возможно, вы явно заставили кодировку JSF2 измениться на что-то другое с помощью <f:view encoding>, например. до ISO-8859-1. Вы не должны этого делать, удалите атрибут encoding из <f:view> и оставьте его по умолчанию.

Или, возможно, ваша кодировка базы данных/таблицы MySQL вообще не является UTF-8, но это не будет соответствовать симптомам проблемы, которые вы описали, или вы, должно быть, пропустили часть, в которой вы фактически печатаете значение, полученное из БД, вместо значение, полученное из отправки формы.

В любом случае, все, что вам нужно знать о кодировании символов в веб-приложениях Java EE со всеми возможными проблемами и решениями, подробно описано в Unicode — Как правильно использовать символы?

05.02.2013
  • Спасибо за ответ BalusC. Я получаю вот это விà®à®¯à¯, когда я ввожу какое-то значение и пытаюсь сохранить его в БД 05.02.2013
  • Да, я понял это. Вы поняли ответ и применили исправления? 05.02.2013
  • На моей странице у меня нет вызова AJAX и f: view.. и я также попробовал кодировку текстового файла... Ничего не получилось. а mytable поддерживает UTF-8. Теперь я читаю ваш блог, чтобы правильно понять персонажей. 05.02.2013
  • О, я, возможно, должен упомянуть, что я предполагаю, что вы используете Facelets, а не его устаревший предшественник JSP. Видите ли, вы отметили вопрос [jsf2]. Но если вы - совершенно неожиданно - на самом деле используете JSP, тогда вам следует установить кодировку страницы (или, лучше, сбросить ее и заменить на Facelets). 05.02.2013
  • Я использую простые лица в JSF. Кстати, теперь мои значения сохраняются в БД по мере ввода (на других языках) только во второй отправке. Когда я отправляю после ввода значений, которые он сохраняет в БД как Mojibake :( 07.02.2013
  • да. Вы применили исправления, упомянутые в ответе? Например. фильтр. 07.02.2013
  • Да, BalusC.. Теперь все работает нормально.. Я использовал фильтр для решения.. Большое спасибо, BalusC :) 07.02.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..