когда я отправляю символ Ö с веб-страницы, серверная часть получает Ã. Веб-страница является частью приложения Spring Webflow / JSF1.2 / Facelets. Когда я проверяю POST с помощью firebug, я вижу:
Content-Type: application/x-www-form-urlencoded
Content-Length: 74
rapport=krediet_aanvragen&fw1=0&fw2=%C3%96ZTEKIN&fw3=0&fw4=0&zoeken=Zoeken
Символ Ö закодирован как% C3% 96, используя эту таблицу, я вижу, что это правильное шестнадцатеричное представление UTF-8 / Unicode персонаж Ö. Однако, когда он достигает бэкэнда, символ меняется на Ã. Используя ту же таблицу, я вижу, что где-то есть код, который пытается интерпретировать C3 и 96 отдельно (или как нотацию unicode \ u). U + 00C3 оказывается Ã, 96 - невидимый символ, что объясняет это.
Теперь я знаю, что это типичный случай несоответствия кодировки, я просто не знаю, где это исправить.
Веб-страница содержит
При отладке я вижу, что библиотека, ответственная за неправильную интерполяцию, - это jboss-el 2.0.0.GA, что кажется правильным, поскольку значение передается на сервер в выражении веб-потока:
Он помещен в flowScope следующим образом:
Не обращайте внимания на запутанный способ получения ввода формы в бэкэнд, это код, который пытается интегрировать Webflow с отчетами BIRT ... но у меня такой же симптом есть в других веб-приложениях.
Есть идеи, с чего мне начать поиск?